I am currently working with some velocity and acceleration vectors and I am a bit unsure about how to interpret the results. Consider the fact that I have 3 points 1.(x1,y1) @ t = 0.0s, 2.(x2,y2) @ t = 0.1s, and 3.(x3,y3) @ t = 0.2s.

Using these coordinates I calculate a velocity vector between points 1 and 2 and another velocity vector between points 2 and 3. I then calculate an acceleration vector using the 2 velocity vectors over 0.2s.

If I were to calculate a dot product between the acceleration vector and the first velocity vector and use that along with the magnitude of the first vector and magnitude of the acceleration vector to calculate the angle between the acceleration vector and the velocity vector, what does that angle represent and how can I interpret it?

I have the following code to calculate these vectors if that helps. I am just trying to gain a better intuition of what the dot product between the first velocity vector and the acceleration vector actually means

    first_point = all_coordinates[i][j]
    second_point = all_coordinates[i][j+1]
    third_point = all_coordinates[i][j+2]

    first_vector = (second_point[0]-first_point[0],second_point[1]-first_point[1])
    second_vector = (third_point[0]-second_point[0],third_point[1]-second_point[1])

    first_vector_magnitude = math.sqrt((first_vector[0])**2 + (first_vector[1])**2)
    second_vector_magnitude = math.sqrt((second_vector[0])**2 + (second_vector[1])**2)

    time_interval = 0.1

    velocity_vector1 = (first_vector[0]/time_interval,first_vector[1]/time_interval)
    velocity_vector2 = (second_vector[0]/time_interval,second_vector[1]/time_interval)

    acceleration_vector = (((velocity_vector2[0]-velocity_vector1[0])/0.2),((velocity_vector2[1]-velocity_vector1[1])/0.2))
    acceleration_vector_magnitude = math.sqrt((acceleration_vector[0])**2 + (acceleration_vector[1])**2)

    dot_product = ((first_vector[0]*acceleration_vector[0])+(first_vector[1]*acceleration_vector[1]))
    angle = np.arccos(round((dot_product/(first_vector_magnitude*acceleration_vector_magnitude)),2))
  • $\begingroup$ I’m kinda curious as to why you programmed it. It’s been my experience that you need some formula to base the code off of, no? $\endgroup$
    – Kyle Kanos
    Commented Nov 25, 2019 at 18:20
  • $\begingroup$ @KyleKanos I have a series of coordinates that shows the movement of a person over 30 seconds. The coordinates are shown every 0.1s. So for 30 seconds I would have 300 coordinates. Felt it was easier to program and calculate the vectors than do it by hand. $\endgroup$ Commented Nov 25, 2019 at 18:23
  • $\begingroup$ Yeah but why did you program the dot product unless you had something saying to do so? $\endgroup$
    – Kyle Kanos
    Commented Nov 25, 2019 at 18:26
  • $\begingroup$ Yeah I'm kind of following instructions from a colleague as part of a group project that I am working on. he gave me the formulas but I'm trying to interpret it and get a better understanding of what I am trying to calculate. $\endgroup$ Commented Nov 25, 2019 at 18:30

1 Answer 1


The dot product $\mathbf{v}\cdot\mathbf{a}$, using $\mathbf{F}=m\mathbf{a}$, is the power

$$P = \mathbf{F}\cdot\mathbf{v}$$

divided by the mass. Power is the rate of change of kinetic energy $mv^2/2$, so your dot product is the rate of change of the kinetic energy per unit mass:

$$\mathbf{v}\cdot\mathbf{a} = \frac{d}{dt}\left(\frac12 v^2\right).$$

That is, it tells you how fast the particle is gaining kinetic energy, which is directly related to how its speed changes.

The rate of change of speed depends not only on the magnitude of the acceleration but also in which direction it points. Acceleration at right angles to velocity produces no change in speed, only a change in direction, as in uniform circular motion. Therefore, the angle between the two vectors tells you how "useful" this acceleration is at changing the speed of the particle.

  • $\begingroup$ Thank you! That makes sense. If I had a particle moving like in this image (docs.toonboom.com/help/harmony-14/premium/Resources/Images/HAR/…). How could I go about identifying the yellow dots in the image? Essentially where the particle begins to curve its motion given I have the acceleration and angles calculated? What should I be looking for? $\endgroup$ Commented Nov 25, 2019 at 18:35
  • $\begingroup$ @soccer_analytics_fan What makes the yellow dots special? Some of them I can see as points of high curvature, but others seem to have nothing special about them. $\endgroup$
    – Javier
    Commented Nov 25, 2019 at 18:39
  • $\begingroup$ Well if you consider only the points of high curvature how would you expect the acceleration and angles to look at those points? I am trying to isolate the high curvature points. How would you go about identifying them? $\endgroup$ Commented Nov 25, 2019 at 19:30
  • $\begingroup$ @soccer_analytics_fan To find the points of high curvature you can calculate the radius of curvature, given by $R = v^3 / |\mathbf{v}\times\mathbf{a}|$, and find the points where this is smallest. (Note that in two dimensions the cross product should be interpreted as $v_x a_y - v_y a_x$.) $\endgroup$
    – Javier
    Commented Nov 25, 2019 at 19:34
  • $\begingroup$ Thank you! @Javier that helps a lot! $\endgroup$ Commented Nov 25, 2019 at 19:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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