lv_math.h
Defines
-
LV_TRIGO_SIN_MAX
-
LV_TRIGO_SHIFT
LV_TRIGO_SHIFT to normalize
-
LV_BEZIER_VAL_SHIFT
log2(LV_BEZIER_VAL_MAX): used to normalize up scaled values
-
LV_BEZIER_VAL_MAX
Max time in Bezier functions (not [0..1] to use integers)
-
LV_BEZIER_VAL_FLOAT(f)
Convert const float number cubic-bezier values to fix-point value
-
LV_ALIGN_UP(x, align)
Align up value x to align, align must be a power of two
-
LV_ROUND_UP(x, round)
Round up value x to round, round can be any integer number
-
LV_MIN(a, b)
-
LV_MIN3(a, b, c)
-
LV_MIN4(a, b, c, d)
-
LV_MAX(a, b)
-
LV_MAX3(a, b, c)
-
LV_MAX4(a, b, c, d)
-
LV_CLAMP(min, val, max)
-
LV_ABS(x)
-
LV_UDIV255(x)
-
LV_IS_SIGNED(t)
-
LV_UMAX_OF(t)
-
LV_SMAX_OF(t)
-
LV_MAX_OF(t)
Functions
-
int32_t lv_cubic_bezier(int32_t x, int32_t x1, int32_t y1, int32_t x2, int32_t y2)
Calculate the y value of cubic-bezier(x1, y1, x2, y2) function as specified x.
- Parameters:
x -- time in range of [0..LV_BEZIER_VAL_MAX]
x1 -- x of control point 1 in range of [0..LV_BEZIER_VAL_MAX]
y1 -- y of control point 1 in range of [0..LV_BEZIER_VAL_MAX]
x2 -- x of control point 2 in range of [0..LV_BEZIER_VAL_MAX]
y2 -- y of control point 2 in range of [0..LV_BEZIER_VAL_MAX]
- Returns:
the value calculated
-
int32_t lv_bezier3(int32_t t, int32_t u0, uint32_t u1, int32_t u2, int32_t u3)
Calculate a value of a Cubic Bezier function.
- Parameters:
t -- time in range of [0..LV_BEZIER_VAL_MAX]
u0 -- must be 0
u1 -- control value 1 values in range of [0..LV_BEZIER_VAL_MAX]
u2 -- control value 2 in range of [0..LV_BEZIER_VAL_MAX]
u3 -- must be LV_BEZIER_VAL_MAX
- Returns:
the value calculated from the given parameters in range of [0..LV_BEZIER_VAL_MAX]
-
uint16_t lv_atan2(int x, int y)
Calculate the atan2 of a vector.
- Parameters:
x --
y --
- Returns:
the angle in degree calculated from the given parameters in range of [0..360]
-
int32_t lv_sqrt32(uint32_t x)
Alternative (fast, approximate) implementation for getting the square root of an integer.
- Parameters:
x -- integer which square root should be calculated
-
static inline int32_t lv_sqr(int32_t x)
Calculate the square of an integer (input range is 0..32767).
- Parameters:
x -- input
- Returns:
square
-
int64_t lv_pow(int64_t base, int8_t exp)
Calculate the integer exponents.
- Parameters:
base --
exp --
- Returns:
base raised to the power exponent
-
int32_t lv_map(int32_t x, int32_t min_in, int32_t max_in, int32_t min_out, int32_t max_out)
Get the mapped of a number given an input and output range
- Parameters:
x -- integer which mapped value should be calculated
min_in -- min input range
max_in -- max input range
min_out -- max output range
max_out -- max output range
- Returns:
the mapped number
-
void lv_rand_set_seed(uint32_t seed)
Set the seed of the pseudo random number generator
- Parameters:
seed -- a number to initialize the random generator
-
uint32_t lv_rand(uint32_t min, uint32_t max)
Get a pseudo random number in the given range
- Parameters:
min -- the minimum value
max -- the maximum value
- Returns:
return the random number. min <= return_value <= max
-
struct lv_sqrt_res_t