Direction of normal
I want to make a circle bounce from surfaces when a key is pressed in the way that the ball in N-Ball does, so that its velocity in the direction of the surface's normal becomes a value that has a constant magnitude and its velocity in the direction that is parallel to the surface does not change. This is not a physics engine question, only a mathematical one. How to do it? I am asking this as I can not yet do vector maths well (I know only its basics).
Simple, you just need to subtract out the normal component from the velocity.
Velocity component parallel to the normal:
vNormal = dot(velocity, n)*n
Velocity component perpendicular to the normal:
vTangent = velocity - vNormal
Your desired normal velocity:
vDesired = n*desired
Putting it all together:
vResult = vTangent + vDesired
Which simplifies to:
vResult = velocity + (desired - dot(velocity, n))*n
Velocity component parallel to the normal:
vNormal = dot(velocity, n)*n
Velocity component perpendicular to the normal:
vTangent = velocity - vNormal
Your desired normal velocity:
vDesired = n*desired
Putting it all together:
vResult = vTangent + vDesired
Which simplifies to:
vResult = velocity + (desired - dot(velocity, n))*n
Scott Lembcke - Howling Moon Software
Author of Chipmunk Physics - A fast and simple rigid body physics library in C.
Thanks. Do I need to find the collision surface's normal myself, as Chipmunk does not seem to have a query for it?
You can get collision normals from the cpArbiter struct passed to your collision handler callback. (See http://files.slembcke.net/chipmunk/relea...cpArbiter)
Scott Lembcke - Howling Moon Software
Author of Chipmunk Physics - A fast and simple rigid body physics library in C.
Possibly Related Threads...
| Thread: | Author | Replies: | Views: | Last Post | |
| Direction formula? | TimMcD | 2 | 4,252 |
Nov 11, 2009 11:42 PM Last Post: TimMcD |
|
| Triangle Normal Calculations | merrill541 | 2 | 2,903 |
Feb 1, 2009 07:06 PM Last Post: merrill541 |
|
| Calculating direction of car from normal vector and angle | spinner | 1 | 2,812 |
Oct 21, 2006 10:43 AM Last Post: imikedaman |
|

