три поворота js Object3D

Я все еще новичок в использовании трех js. Когда я вращаю объект камеры, свойство вращения имеет значение x, y, z. Мне интересно, откуда взялись x, y, z в вращении Object 3D? Я знаю, что x, y, z представляют собой радианы угла объекта Эйлера, но в соответствии со ссылкой на документ three.js укажите: https://en.wikipedia.org/wiki/Euler_angles диапазон α и γ охватывает 2π радиан, а диапазон β охватывает π радиан. Однако диапазон всех x, y, z покрывает только π радиан, когда я его проверяю. Изначально x=0,y=0,z=0, посмотрите прямо вверх, почему изменилось только значение x? И если Object3D — это камера, означает ли это, что центральный пиксель в представлении камеры представляет собой ось X? Ценю вашу помощь.


person Chengsi Zhang    schedule 26.10.2016    source источник


Ответы (1)


Вы можете немного яснее сформулировать свой вопрос и дать код для воспроизведения вашей ошибки.

На вопрос, почему изменяется только x-значение, когда вы смотрите прямо вверх из (0,0,0), потому что x, y и z представляют оси, которые вы вращаете вокруг. Стандарт в 3js и в 3D-графике в целом состоит в том, чтобы использовать x как горизонтальную ось, y как вертикальную ось и z как ось глубины. Глядя прямо вверх, вы повернетесь на 90 градусов вокруг горизонтальной оси x, тем самым изменив значение x при вращении.

Я могу дать вам ссылку на https://threejs.org/docs/#api/math/Euler

Three.js предоставляет два способа представления трехмерных поворотов: углы Эйлера и кватернионы, а также методы преобразования между ними. Углы Эйлера подвержены проблеме, называемой карданным замком, когда определенные конфигурации могут терять степень свободы (предотвращая вращение объекта вокруг одной оси). По этой причине повороты объекта всегда сохраняются в кватернионе объекта.

Предыдущие версии библиотеки включали свойство useQuaternion, для которого при установке значения false матрица объекта вычислялась из угла Эйлера. Эта практика устарела — вместо этого вы должны использовать метод setRotationFromEuler, который будет обновлять кватернион.

https://threejs.org/docs/manual/introduction/Matrix-transformations.html

person Hopploppa    schedule 02.12.2016