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!
Pixel-based collision detection with sphere
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..
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..
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
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
Popular Topics
Advertisement
Recommended Tutorials
Advertisement