Skip to main content
GameDev.net gamedev.net
🔒 Locked

Pixel-based collision detection with sphere

Started by FishFace Sep 28, 2012 at 1:07 PM 1 replies 2.7k views
Original Post
FishFace
FishFace
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!
m_a_s_gp
m_a_s_gp
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..
Inferiarum
Inferiarum
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

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.