Siguiendo con mi pregunta anterior : tengo la pelota rebotando de manera bastante realista desde las superficies que golpea. Ahora me gustaría hacerlo girar por la fricción del golpe .
Mostrar esto es bastante simple: giro la pelota por su velocidad angular cada tic y aplico la misma rotación cuando se procesa.
Cuando una pelota golpea una pared, sé que la velocidad de rotación se ve afectada por ...
- la velocidad inicial de la pelota cuando golpea la superficie
- Los coeficientes de fricción de la bola y la superficie (constantes físicas)
- El ángulo de incidencia (el ángulo entre el vector de velocidad entrante de la pelota y la superficie normal).
El ángulo de incidencia se aproxima por el producto de punto de los vectores de velocidad de impacto y salida de la pelota. (1 significa giro alto, -1 significa no girar, y todo lo demás relativamente en el medio)
Multiplicando todo lo anterior y asegurándose de que luego se transformaron al rango 0-1, y se multiplicaron por la velocidad máxima de rotación, la pelota pareció responder en la velocidad de rotación como se esperaba. Excepto por una cosa: siempre rotaría en sentido horario (debido a valores positivos).
¿Es este un buen método? ¿Se te ocurre una manera más simple?
Si este método parece estar bien, ¿qué me estoy perdiendo? ¿Cómo sé cuándo la bola debe girar en sentido antihorario?