rotacion resueltos promedio para mensual inventarios inventario indice ejercicios cómo calcular calcula math animation 3d trigonometry

math - resueltos - rotacion de inventarios formula mensual



Cálculo de rotación a lo largo de un camino (6)

Intento animar un objeto, digamos que es un automóvil. Quiero que vaya desde el punto

x1, y1, z1

apuntar x2, y2, z2 . Se mueve hacia esos puntos, pero parece estar a la deriva en lugar de apuntar en la dirección del movimiento. Entonces mi pregunta es: ¿cómo puedo resolver este problema en mi evento updateframe ()? ¿Podrías dirigirme hacia algunos buenos recursos?

Gracias.


Creo que interpolar es dar la vuelta que estás viendo. Necesita modelar la forma en que funciona la dirección. Su función de actualización debe 1) mover el automóvil siempre en la dirección hacia donde apunta y 2) girar el automóvil hacia el objetivo actual ... uno no debe afectar al otro para que el giro sucederá y se completará más rápidamente que el que llega.


Debe calcular la orientación inicial del automóvil y la orientación final del automóvil en su destino, luego interpolar entre ellos para determinar la orientación intermedia para el paso de tiempo actual.

Este artículo describe las matemáticas detrás de la interpolación, así como algunas otras cosas que hacer con los objetos rotativos que pueden ser útiles para usted. gamasutra.com en general es un excelente recurso para este tipo de cosas.


Primero, ¿cómo representas el camino?

Hace poco hice exactamente esto y utilicé las splines de Catmull-Rom para el camino. Para orientar un objeto y hacer que siga la ruta spline, necesita interpolar la posición actual x, y, z desde una t que recorre la spline, luego oriéntela a lo largo del Sistema de coordenadas Frenet o Marco Frenet para esa posición en particular.

Básicamente para cada punto necesitas 3 vectores: la Tangente, la Normal y la Binormal. La tangente será la dirección real que le gustará a su objeto (automóvil) para apuntar.

Elijo Catmull-Rom porque son fáciles de deducir las tangentes en cualquier punto; solo hacen la diferencia (vectorial) entre otros 2 puntos cercanos al actual. (Digamos que estás en t , elige t-epsilon y t + epsilon - con épsilon siendo una constante lo suficientemente pequeña).

Para los otros 2 vectores, puede usar este método iterativo : es decir, comienza con un conjunto conocido de vectores en un extremo y trabaja un conjunto nuevo basado en el anterior marco de actualización () ).


En términos generales, la dirección hacia la que apunta el automóvil es a lo largo de su vector de velocidad , que es la primera derivada de su vector de posición .

Por ejemplo, si el automóvil va en un círculo (de radio r ) alrededor del origen cada n segundos, entonces el componente x de la posición del automóvil viene dado por:

x = r.sin(2πt/n)

y el componente x de su vector de velocidad será:

vx = dx/dt = r.(2π/n)cos(2πt/n)

Haga esto para todos los componentes x , yyz , normalice el vector resultante y tenga su dirección.


Siempre apuntar el automóvil hacia el punto de destino es simple y barato, pero no funcionará si el automóvil sigue una trayectoria curva. En ese caso, debe apuntar el automóvil a lo largo de la línea tangente en su ubicación actual (ver otras respuestas, arriba).


ir de una posición a otra le da a un objeto una velocidad, una velocidad es un vector, y la normalización de ese vector le dará el vector de dirección del movimiento que puede conectar a una matriz de "mirar", hacer la cruz de arriba con este vector para obtener el lado y listo, tienes una matriz completa para el control de dirección del objeto en movimiento.