![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как найти локальную матрицу, если есть две глобальные?
TDummyCube © (2006-05-06 04:47:00)К DummyCube1 прицеплен DummyCube2.
Есть глобальные матрицы обоих. Как ВЫЧИСЛИТЬ локальную матрицу DummyCube2 по этоим данным? Какие там над матрицами надо произвести вычисления?
Речь идёт о GLScene, если что.
Cash (2006-05-07 07:17:00) [1]Транспонирование матриц.
Там же вмест деления применяется умножение на транспонированную
(обратную) матрицу. Я только не помню какую именно надо транспонировать!
Поиграй с этим выражением и получиш то что надо.
TDummyCube (2006-05-07 01:47:00) [2]А что представляет из себя функция Transpose, и где её взять?
Cash (2006-05-06 14:25:00) [3]А... то есть тебе надо исходя из двух глобальных получить местное
преобразование, is'n it?
ТОгда идем наеборот! :))
Если DC2MatrG := DC1MatrG * DC2MatrL;
то: (ох, забыл я линейную алгебру, поправте меня ктоньть :) )
DC2MatrL == DC2MatrG * Transpose(DC1MatrG);
TDummyCube (2006-05-06 07:51:00) [4]Есть DummyCube1.GlobalMatrix и DummyCube1.LocalMatrix.
Глобальная - значит в глобальной системе координат. А локальная - относительно предка.
Cash (2006-05-06 06:47:00) [5]Так, если к DC1 прилеплен DC2, то для DC2 матрица DC1 является
глобальной, а своя - локальной! Да что тебе всетаки надо найти?
Если глобальную для DC2, то надо сделать такое (вроде):
DC2MatrG := DC1MatrG * DC2MatrL;
(взять глобальную матрицу хозяина и помножить ее на свою локальную)