viernes, 6 de junio de 2014

Práctica 5: Sólido Rígido (Sesión 1 - Velocidad Angular)

ENUNCIADO:
·Simular el movimiento de una esfera de manera que se mueva con
una velocidad lineal v(t) y que gire lo necesario para no producir el
clásico efecto de deslizamiento sobre el suelo (que no patine).
·Calcular cuál es la velocidad angular que evita dicho deslizamiento.
Esta restricción se representa mediante la ecuación mostrada, donde
se exige que la velocidad del punto de contacto esfera-suelo sea nula
(deslizamiento nulo).


En esta práctica se nos presentan dos casos: la esfera se desplaza sobre el plano, y la esfera se desplaza sobre el plano situado en la parte superior de la misma. Los hemos unido en la misma actividad, pudiendo cambiar de caso con la tecla 'c'.

Trabajamos en una misma clase, 'CasosConGravedad', y realizamos las operaciones en los distintos métodos:

- Update: resolvemos el sistema de ecuaciones v(t) + w(t) x R = P(t), siendo P(t)=0. Despejando, hallamos la componente 'z' de la velocidad angular: ' w_giro = (v_lineal.x/punto_bola.y) ', y obtenemos que ' velocidad_angular = new PVector(0,0,w_giro) '. La velocidad lineal resulta de multiplicar aceleración por tiempo. Tras ello, añadimos a la posición de la esfera,  dicha velocidad lineal. Si la pelota se sale del plano, aplicamos la gravedad con 'applyForce(g)'. Finalmente, se incrementa el angulo de giro, multiplicando la magnitud de la velocidad angular por un incremento de tiempo.

- ApplyForce: le pasamos como parámetro la gravedad, la dividimos entre la masa y la sumamos a la aceleración ( F = m * a).

- Draw: dependiendo del caso seleccionado con el teclado, pintamos el plano encima o debajo de la bola, y rotamos con el ángulo de giro positivo o negativo. La velocidad en el punto de contacto con el plano es cero, ya que el producto vectorial de la velocidad angular con el radio, da negativo, que se anula cuando le sumamos la velocidad lineal.




No hay comentarios:

Publicar un comentario