![]() |
|
||||||||||
|
|||||
|
>>Так вот, оси всей конструкции смещаются вместе с ней же.
поэтому перед appendRotation двигаем объект (appendTranslation) в начало координат родителя и ставим на место после вращения (см. мой первый пост) что делаешь ты я не понял |
|
|||||
|
[+4 18.09.08]
Регистрация: May 2006
Сообщений: 79
|
у меня есть кучка векторов (читай 3д-точек), они, как бы, по умолчанию в начале координат. Я делаю матрицу преобразований и применяю последовательно к каждому вектору.
И потом, от того, что ты передвинешь объект, положение осей не должно же меняться? такое впечатление, что твоя история про пивот, нет? |
|
|||||
|
моя история про pivot, все верно
про что твоя, я так и не понял.. т.е. ты получил новые координаты каждой точки (m.transformVector( points3D[i]) ,а затем зачем-то взял их и развел в соответствии с какими-то еще соображениями (parts[i].x = a.x*111+222; ), все развалилось.. если задача только вращать весь массив, то не проще будет не обнулять матрицу, а добавлять (appendRotation) нужные углы и из текущей получать новые координаты точек (m.transformVector) Добавлено через 6 минут да, еще есть смысл пощупать разницу prependRotation vs appendRotation.. я не возьмусь сейчас ее объяснять, потому как сам не вполне въехал, сори Последний раз редактировалось silin; 09.06.2010 в 18:16. |
|
|||||
|
[+4 18.09.08]
Регистрация: May 2006
Сообщений: 79
|
моя история про то, что после одного вращения вместе с объектом поворачиваются его оси (не меняя позиции), а следовательно следущее вращение(которое предпологается сделать по мировым осям находящимся в той же точке) уже не будут ожидаемыми.
словом ты прав, задача - вращать массив векторов. так как ведет куб в твоем примере в simple в 3D - то что нужно. на эту часть не смотри это просто отображение векторов, и там все хорошо) добавлять можно, но во-первых, это не удобно для меня (хочу чтобы массив "следил" за мышью - усложняется вычесления сильно), а во-вторых, это уже у меня с ними личное )) Последний раз редактировалось gen4; 09.06.2010 в 18:18. |
![]() |
![]() |
Часовой пояс GMT +4, время: 08:51. |
|
|
« Предыдущая тема | Следующая тема » |
|
|