Sign in to follow this  
Hairie

Pixel-based collision detection with sphere

Recommended Posts

Hairie    109
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!

Share this post


Link to post
Share on other sites
m_a_s_gp    107
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.. Edited by m_a_s_gp

Share this post


Link to post
Share on other sites
Inferiarum    739
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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this