0
У меня есть камеры матрицы следующим образом:камера Внешнюю матрица в мире координаты
0.999995,-0.00313698,4.29446e-06, 0.632334
0.00313675,0.999936,0.0108695,0.0111429
-3.83917e-05,-0.0108695,0.999941,-21.8834
0,0,0,1
из матрицы вращения R:
0.999995,-0.00313698,4.29446e-06,
0.00313675,0.999936,0.0108695,
-3.83917e-05,-0.0108695,0.999941
и Translation Matrix T:
0.632334, 0.0111429,-21.8834
Что мне нужно сделать, так это скрыто от камеры до космоса. У меня есть формула, которая:
'Rotation from camera to world is simply
inv(R) = transpose(R).
T is the pre-rotated camera center,
T = -R C, so C = -inv(R) T = (x,y,z).'
Я новичок в матричном математике, и я запутался, как поступить. Как взять мою R-матрицу, а в C++ - сделать выше?
спасибо.
Google "C++ 4x4 матрица". Существует множество бесплатных библиотек и примеров ... – Scheff
Привет, спасибо за ваш ответ. Это формула, с которой я запутался. в: 'inv (R) = транспонировать (R). ', Google говорит мне, что обратная и транспонированная матрица различны. Как они могут быть равными? Должен ли я получить обратный? или транспонированной матрицы? – anti
@CMouse Для общих матриц обратное и транспонированное - это нечто иное. (Например, инверсия возможна только на неособых матрицах, всегда применимо транспонирование). Матрицы, содержащие поворот, являются только исключением - в этом случае обратное _is_ транспонировать. Таким образом, инвертирование матрицы вращения становится очень дешевой операцией. См. Также: [Википедия] (https://en.wikipedia.org/wiki/Matrix_ (математика) #Orthogonal_matrix) – Scheff