vector de tradução câmara - relação à matriz de rotação
-
18-09-2019 - |
Pergunta
Eu estou trabalhando com algum código que gera uma matriz de rotação 3x3 e um vetor de translação representando uma orientação câmeras e localização.
No entanto, os estados de documentação que para obter a localização do uma câmera deve multiplicar o transposto e invertido matriz de rotação do vetor de translação. Isso significa que o vector original não é a localização da câmera? Se não, o que é que vector originais representam?
Solução
Eu estou assumindo que a R (matriz de rotação) e t (o vetor de translação) obteve foram wrt um sistema de coordenadas com (0,0,0)
como a origem.
Com R e t agora você pode mover um ponto do mundo sistema de coordenadas ( WC ) para a câmera sistema de coordenadas ( CC ), ou seja, X c = RX + t onde X é um ponto de 3D em CA e X c X em CC (isto é, visto do ponto de vista da câmara). Isto é aplicável assumindo que estamos lidando com corpos rígidos para que basta girar o ponto e, em seguida, traduzi-lo.
Agora, você precisa encontrar as coordenadas do centro da câmara, que é a origem do CC , ou quando X c = 0 :
E, a propósito,
A correção na documentação
Transpondo
Outras dicas
O vector original neste caso é provavelmente o vetor de translação nas coordenadas após a tradução. Ou talvez antes -. Tudo depende do seu ponto de vista pessoal
A coisa é, você tem dois sistemas de coordenadas, e cada vetor pode ser representado em cada um dos sistemas de coordenadas. A matriz de rotação permite transformar as coisas de um sistema para o outro. O "multiplicar a matriz de rotação transposta e invertida por" uma coisa é a transformação para trás.