![]() |
|
||||||||||
|
|||||
|
Как поворот вокруг произвольной оси разложить на последовательные повороты по осям Ох, Оу, Oz?
Или как абсолютные повороты по осям Ох, Оу, Оz представить в виде серии последовательных поворотов. Хотелось бы почитать теорию, не могу сформулировать правильный запрос гуглу ..... То что нахожу - базовые понятия-отрывки. Последний раз редактировалось miramax; 02.01.2007 в 19:32. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
http://etcs.ru/portfolio/bricks.fla
Там шесть строк. Ничего не подскажу, потому что имел дело с этим очень давно и сейчас ничего не помню. |
|
|||||
|
Это как раз последовательный поворот по трём осям, последовательное преобразование по трём матрицам, это мы умеем
://цитата исходника __etc y = o.y0*Math.cos(angleZ)+o.x0*Math.sin(angleZ); x = o.x0*Math.cos(angleZ)-o.y0*Math.sin(angleZ); // y rotate z = o.z0*Math.cos(angleY)-x*Math.sin(angleY); x = x*Math.cos(angleY)+o.z0*Math.sin(angleY); // x rotate oy = y; y = y*Math.cos(angleX)-z*Math.sin(angleX); z = oy*Math.sin(angleX)+z*Math.cos(angleX); |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Это тебе надо сделать преобразование координатных плоскостей, в смысле повернуть сами оси. Только, я мозг напрячь не могу, новый год вроде недавно был %)
|
|
|||||
|
Цитата:
Но как меня это приблизит к разложению поворота на 3 составляющих ? |
|
|||||
|
Серия последовательных поворотов точки зависит от порядка применения поворотв. Допустим
поворот по Ox = 0.5; поворот по Оу = 0,2; поворот по Oz = 0.6; Если будем поворачивать одну точку последовательно по осям Ох, Оу, Оz, а потом попробуем повернуть другую точку на эти же углы, но в последовательности Оz, Оу, Ох - то получим точки в разных местах. Т.е. здесь всё зависти от порядка применения поворотов. Я хочу от этого порядка избавиться, вводя абсолютные значения поворотов относительно осей Ох, Оу, Oz. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Мммм, надо тебя направить в сторону матричных преобразований поворота осей XYZ.
И ещё, как ты представляешь себе ось, заданную в пространстве не с помощью трех углов? XYZ? Если да, то синусы и косинусы рулят ) |
|
|||||
|
Цитата:
Более того любой поворот можно разложить на повороты вокруг только двух любых осей, например А=АЗ(е1)*АУ(е2)*АЗ(е3) , где е1,е2,е3 так называемые углы Эйлера. === По видимому задача нахождения "абсолютных поворотов" неразрешима. Последний раз редактировалось valvika; 03.01.2007 в 01:42. |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:35. |
|
|
« Предыдущая тема | Следующая тема » |
|
|