Di recente ho lavorato su un gioco usando OpenGL e C ++ tramite GLFW.
Nel gioco ho un dirigibile con una torretta montata su di esso. Il dirigibile si sposta nelle coordinate spaziali del mondo e la torretta "la segue".
La torretta ha il suo spazio di coordinate per la sua direzione di sguardo / mira. Fondamentalmente, quando la torretta punta in direzione (0,0,1)
, mira parallela alla direzione del movimento dei dirigibili.
Per dare alla torretta un obiettivo spaziale mondiale, ho una matrice che prende le coordinate spaziali del mondo e le trasforma in coordinate spaziali della torretta.
Mentre la torretta si accende, voglio che generi i proiettili nello spazio mondiale, quindi esiste un modo elegante di usare la mia matrice di trasformazione per convertire le coordinate dello spazio della torretta nello spazio mondiale?
Un modo più generale di porre la domanda potrebbe essere: se ho una matrice M
che prende coordinate dallo spazio A
allo spazio B
. C'è un modo semplice da usare M
per ottenere le coordinate da B
a A
?