2020-05-10 05:59 AM
Hi
I would like to know whether the interface is cubic-bezier left in touchgfx.I noticed that there's a little bit less description of the easing equation .
Thank you.
Solved! Go to Solution.
2020-05-11 03:28 AM
Hi Korry,
If i left you with the following implementation of one of the easing equations, would it be enough for you to continue? They're declared in the class EasingEquations as static functions.
/**
* Cubic easing in: t^3. Accelerating from zero velocity.
*
* @param t Time. The current time or step.
* @param b Beginning. The beginning value.
* @param c Change. The change between the beginning value and the destination value.
* @param d Duration. The total time or total number of steps.
*
* @return The current value as a function of the current time or step.
*/
static int16_t cubicEaseIn(uint16_t t, int16_t b, int16_t c, uint16_t d);
Definition:
int16_t EasingEquations::cubicEaseIn(uint16_t t, int16_t b, int16_t c, uint16_t d)
{
int16_t result = b + c;
if ((t < d) && (d != 0))
{
float tmp = static_cast<float>(t) / d;
result = roundRespectSign(c * tmp * tmp * tmp + b);
}
return result;
}
And you would use your own (static function defined whereever) in this way:
virtual void handleTickEvent()
{
....
counter++;
// Calculate value in [0;targetValue]
calculatedValue = MyEasingEquations::myCustomEeasingEq(counter, 0, targetValue, animationSteps);
....
/Martin
2020-05-11 03:28 AM
Hi Korry,
If i left you with the following implementation of one of the easing equations, would it be enough for you to continue? They're declared in the class EasingEquations as static functions.
/**
* Cubic easing in: t^3. Accelerating from zero velocity.
*
* @param t Time. The current time or step.
* @param b Beginning. The beginning value.
* @param c Change. The change between the beginning value and the destination value.
* @param d Duration. The total time or total number of steps.
*
* @return The current value as a function of the current time or step.
*/
static int16_t cubicEaseIn(uint16_t t, int16_t b, int16_t c, uint16_t d);
Definition:
int16_t EasingEquations::cubicEaseIn(uint16_t t, int16_t b, int16_t c, uint16_t d)
{
int16_t result = b + c;
if ((t < d) && (d != 0))
{
float tmp = static_cast<float>(t) / d;
result = roundRespectSign(c * tmp * tmp * tmp + b);
}
return result;
}
And you would use your own (static function defined whereever) in this way:
virtual void handleTickEvent()
{
....
counter++;
// Calculate value in [0;targetValue]
calculatedValue = MyEasingEquations::myCustomEeasingEq(counter, 0, targetValue, animationSteps);
....
/Martin
2020-05-13 06:02 AM
Thank you Martin.I can understand that very well.