Advertisement

Pixel-based collision detection with sphere

Started by September 28, 2012 01:07 PM
1 comment, last by Inferiarum 12 years, 4 months ago
Hello,

I am currently making a pixel based 2D table tennis game where I need to to find the exact point the ball hits the table.
For simplicity reasons I have't programmed the spin of the ball yet.
Can anyone help me with formulas or something else helpful?

Thanks!
You can get the contact point using this formula:

Pc = C - n[(C-P)dot(n)]

Pc: contact point
C: ball's center
n: the unit vector normal to the table and pointing upward
P: any point on the surface of the table

The quantity [(C-P)dot(n)] is the closest distance from the ball's center to the table. If this distance is greater than the ball's radius, there is no collision..
Advertisement
If you want an analytic solution, neglecting friction:

y(x) = y0 + vy*(x-x0)/vx - 0.5 * g * [(x-x0)/vx]^2

vx,vy : initial speed in x and y directions
y0,x0 : initial position
g : acceleration due to gravity

impact is when y(x) = h + r
where h is the height of the table and r the radius of the ball

This topic is closed to new replies.

Advertisement