Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как найти локальную матрицу, если есть две глобальные?


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;
(взять глобальную матрицу хозяина и помножить ее на свою локальную)


Наверх

Титульная страница Поиск, карта сайта Написать письмо