Estoy desarrollando un juego basado en la física con naves espaciales.
Una nave espacial se construye a partir de círculos conectados por uniones. Algunos de los círculos tienen motores conectados.
Los motores pueden rotar alrededor del centro del círculo y crear empuje. Quiero poder mover la nave en una dirección o girar alrededor de un punto estableciendo la rotación y el empuje para cada uno de los motores de la nave.
¿Cómo puedo encontrar la rotación y el empuje necesarios para que cada motor logre esto?
mathematics
physics
SSS
fuente
fuente
Respuestas:
Imaginemos la situación simple de un barco con un solo motor. Para mover la nave, simplemente apuntamos el propulsor lejos de la dirección que queremos ir, y empujamos hacia afuera. Eso nos empuja en la dirección que queremos ir. No es posible rotar una nave compuesta de un solo propulsor.
Vamos a escalar nuestro barco a tres motores para hacerlo más interesante:
Si quisiéramos mover esta nave hacia arriba y hacia la izquierda, apuntaríamos todos nuestros propulsores en la dirección opuesta y dispararíamos:
La misma solución que el propulsor único que se encarga del movimiento lineal.
Pero, ¿qué pasa si nos falta un propulsor? Tenemos una carga desigual?
Seguir la misma estrategia hará que la nave gire. En muchas situaciones, esto será inevitable y, en algunos casos, preferible, ya que orientará la nave para un mejor uso de los propulsores disponibles.
Una estrategia para mitigar esto sería la igualación. Divide la nave en el eje del movimiento deseado:
Luego asegúrese de que el lado derecho y el lado izquierdo sean iguales entre sí. Si no escalan la salida del propulsor hasta que lo hagan. Esto puede resultar fácilmente en que no se aplique empuje. Depende de usted decidir si desea expulsar en su lugar causando rotación u obligar al jugador a rediseñar su nave reorganizando sus propulsores.
¿Qué hay de la rotación?
Esta pregunta describe muy bien la idea.
Tendrás que calcular el centro de masa . Luego calcule el par proporcionado por cada propulsor. Por suerte para ti, tus propulsores rotan, por lo que puedes rotarlos para proporcionar el par máximo. El par máximo vendrá desde un ángulo recto al brazo del momento. Aplicando la suma de los pares rotará el cuerpo alrededor del centro de masa. También puede elegir algún otro punto de rotación arbitrario como el puente de la nave.
Si desea asegurarse de que gira en su lugar , puede reducir el empuje de los propulsores que harán que su nave se mueva linealmente. Puede hacerlo sumando todos los propulsores que tienen un par positivo y todos aquellos con un par negativo, luego compare sus valores absolutos. El grupo con el valor absoluto más grande debe reducirse para que coincida con el valor absoluto del otro grupo.
También puede encontrar un recurso muy útil en Amit Patel .
Ha hecho una serie de 4 partes en naves espaciales configurables aquí: parte 1 , parte 2 , parte 3 , parte 4
fuente
Estoy resuelto eso con la búsqueda local. Está funcionando, pero el rendimiento es casi malo. Quizás sea mejor usar mecánica teórica pero no lo sé.
fuente