0
$\begingroup$

Stumbled on this while working on a program code to display motion animation. The scenario is, the program will have a function to move a picture from its current position to move right. The program took only 2 variables, which is the travel distance and time to cover the distance. The distance is in pixel and the duration is in frames (in this case, the program runs in $60$ frames / second). Linear movement/zero acceleration is not a problem, the velocity can be found by simply by distance/time. But I'm stuck as the program requires acceleration and deceleration into the motion. The scenario is divided into 3 phases :

  1. The first $30%$ of time will be accelerating, from $0$ slowly increases its speed
  2. The next $40%$ of time, movement has no acceleration, during this, the speed always the same
  3. the last $30%$ of time will be decelerating, speed from the last speed of 2nd phase and slowly decrease its speed until it stops.

I'm not good at physics and what makes this tricky for me is that the only information I have is the total distance to be covered and the time needed to reach that distance. There are no limits on the velocity/acceleration.

Lets take an example: a picture needs to be moved $300$ pixels to the right in $70$ frames. My question is:

  1. What is the equation to calculate velocity in each frames for each phase in the above scenario?
  2. What is the equation of acceleration in phase $1$ and $3$?

Any help will be appreciated :) Thanks in advance

$\endgroup$
1
$\begingroup$

You need a function $f\colon[0,T]\to[0,d]$ (your specific example has $d=300$ and $T=70$) that looks like $$ f(t)=\begin{cases}\frac12at^2&\text{if }t<\frac3{10}T,\\ vt+x_0&\text{if }\frac3{10}T\le t\le \frac7{10}T,\\ d-\frac12a(T-t)^2&\text{if }t>\frac7{10}T.\end{cases}$$ By symmetry, $vt+x_0=v(t-\frac T2)+\frac d2$. The facts that $f$ and its derivative $f'$ are continouous translate to the conditions $$ a\cdot\frac3{10}T = v$$ and $$ \frac12a\cdot\frac9{100}T^2= -\frac15vT+\frac d2.$$ From this we find $$ a=\frac{200}{21}\cdot \frac d{T^2}$$ and $$v = \frac{20}{7}\cdot \frac dT.$$

Remark: Spline interpolation of the coordinates offsets may be a good and fast alternative.

$\endgroup$
  • $\begingroup$ Thank you very much for the fast reply! I will try it right away $\endgroup$ – AzDesign May 31 '13 at 15:51
0
$\begingroup$

$d=300$px $T=70/60=\frac{7}{6}$ seconds

General equation of motion:

$d =\frac{1}{2}a t^2 + vt + d_0$

Leading to

$d= .5 \times a \times (T \times .3)^2 (\textrm{for acceleration}) + a \times (T \times .3) \times T \times .4 (\textrm{for constant speed}) + .5 \times a \times (T \times .3)^2 (\textrm{for deceleration})$

Leading to

$a = \frac{d}{(T)^2*(.3^2+.3*.4)}$

The speed you need is $a \times T \times .3$ where the acceleration is $a$.

$\endgroup$
  • $\begingroup$ Thanks for the feedback, this looks like a simpler solution for me, but for which one I should use, I need to try both answer first, I need time to digest the equations. Damn I wished I have privilege to up-vote both answers :( $\endgroup$ – AzDesign May 31 '13 at 16:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.