Как изменить ориентацию камеры в Sketchup с матрицей 3x4 2D-проекции (RT) с помощью Sketchup Ruby API?

У меня есть мировые (3d) точки куба. У меня также есть 3 разных матрицы 3x4 RT, которые преобразуют 3d-точки в 2d-точки изображения. Что я хочу сделать в Sketchup, так это изменить точку обзора камеры (ориентацию) в соответствии с заданными матрицами RT. Но объект камеры Sketchup предоставляет глаз (трехмерная точка, в которой расположена камера), цель (трехмерная точка, на которую смотрит камера) и вверх (информация об оси). Как мне преобразовать мою матрицу RT в глаз, цель и вверх? Я буду использовать API Sketchup Ruby.


person Rifat Rousseau    schedule 27.02.2014    source источник


Ответы (1)


Давайте возьмем верхние 3x3 матрицы RT, вы получите-

RT=

R11 R12 R13 T1

R21 R22 R23 T2

R31 R32 R33 T3

R= R11 R12 R13 R21 R22 R23 R31 R32 R33

T= T1 T2 T3

ось у=R21 R22 R23

ось z=R31 R32 R33

Вы можете изменить камеру SU с помощью глаза, цели и вверх.

глаз=-R(транспонировать)*T

цель = глаз + ось z

вверх=-yось

person Rifat Rousseau    schedule 15.03.2014