[ODE] vector force

Daniel K. O. danielko.listas at gmail.com
Fri Feb 2 13:06:17 MST 2007

elekis escreveu:
> the only function I found is dBodyAddForce (Box,a,b,c);.
> but we have to calculate the a,b,c.
> is there any function like that putForce(BoxA,boxB,10) who put a force
> from
> A to B with 10 unit???
> [...]
> I don't see how to calculate a, b, c  for dBodyAddForce (B,a,b,c); 
> without
> sinus and cosinus.(maybe my physics is a little old)
> is someone can help me?

You may find useful some Linear Algebra tutorials on GameDev.net. They
are currently doing maintenance on the server, but make sure to check it

To get a vector V that points from point A to point B:

V = ( B.x - A.x  ,  B.y - A.y  ,   B.z - A.z )

Done. The vector's length L is proportional to the euclidean distance
between A and B. That is:

L = sqrt(V.x^2 + V.y^2 + V.z^2)

If you divide each component in V by L, you get a "normalized vector"
V', that has the same direction as V, but with length 1.

V' = ( V.x/L  ,   V.y/L  ,  V.z/L )

Now, if you want a vector W with length 10, just multiply each component
in V' by 10:

W = ( V'.x*10  ,  V'.y*10  ,  V'.z*10 )

Daniel K. O.

More information about the ODE mailing list