Programación Específica > OpenGL
Colisiones 3D
satmon:
en mi opinion, el rebote de lapelota tiene que ver con el angulo de incidencia de la pelota de la raqueta, con la velocidad vectorial de la raqueta, no se trata de calcular cuando la pelota coliciona con la raqueta, sino de cuando la pelota va a colicionar con la raqueta, es decir, hay que calcular de antemano en que momento la pelota va a chocar con la raqueta, para detenernos en el momento exacto y cambiar el movimiento de la pelota de acuerdo con su movimiento.
Otra cosa: no se trata de la distancia de un punto a un plano, si no de la distancia de una esfera a un plano,.
Suponiendo que la pelota parte de un punto Op y se mueve en dirección V
la funcion de la posicion de la pelota es=
P(t)= Op + V*t
Y suponiendo que la raqueta es un plano R de origen Or y normal N, la funcion de la distancia con signo es:
D(p)=N.p + C
donde C= -(N.Or)
//si la distancia es positiva, el punto esta delante de la raqueta, de lo contrario esta detras
Despues de un monton de pasos se llega a la ecuacion del momento en el recorrido de la pelota de radio r sobre V cuando colisiona con la raqueta:
t0=(r-D(Op))/(N.V)
//para cuando la pelota choca
t1=(-r-D(Op))/(N.V)
//cuando la pelota deja de colisionar
Navegación
[*] Página Anterior
Ir a la versión completa