| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программирование игр, графики и искусственного интеллекта > Вращение трехгранника вокруг своих осей |
| Автор: shtuceron 14.2.2010, 15:26 |
| Добрый день, можете исправить мою ошибкую. Имеется трехгранник, необходимо смоделировать вращение вокруг его осей для различных углов, к примеру если я осуществляю поворот вокруг оси X меняются положения осей Y и Z, при вращении вокруг оси Y (уже измененной) меняются X и Z и т. д. Для осуществления этого алгоритма я ввожу матрицу и выделяю из неё три компоненты Up, Right, Backward, связанные с этим трехгранником и произвожу вращения вокруг этих осей. Matrix m = Matrix.Identity; m *= Matrix.CreateFromAxisAngle(m.Right, angle1); m *= Matrix.CreateFromAxisAngle(m.Up, angle2); m *= Matrix.CreateFromAxisAngle(m.Backward, angle3); + имеются визуализированные оси которые нужно поворачивать Пишу на XNA создаю basicEffect, передаю в него world * m * view * projection, angle1, angle2, angle3 меняются с помощью стандартных компонентов (numericUpDown). Так вот, если изменять углы последовательно все нормально, но если произвольно происходит каша (ощущение что вращение происходит относительно векторов (1,0,0), (0,1,0), (0,0,1)), в чем может быть проблема? |