X.matrix.rotate не работает
Итак, у меня были проблемы с xtk
var rotate = m.rotate($ANGLE, $IAXIS);
функция в течение достаточно долгого времени. По сути, я хотел бы вращать один объект в пространстве вокруг определенной оси, не перемещая другие объекты или камеру. Моя идея состоит в том, чтобы сделать это, применив функцию поворота к X.matrix, которая будет содержать transform.matrix объекта.
Проблема в том, что я не могу заставить X.matrix.rotate работать ВСЕ. Может кто-нибудь дать мне хотя бы пример того, как должен выглядеть вызов функции и как определить $ IAXIS, потому что я подозреваю, что это может быть проблемой.
Большое спасибо!
2 ответа
Ах, ось в настоящее время должна быть goog.math.Vec3, как здесь, в camera3d.js
var yAxisVector = new goog.math.Vec3(parseFloat(this._view.getValueAt(1, 0)),
parseFloat(this._view.getValueAt(1, 1)), parseFloat(this._view
.getValueAt(1, 2)));
// we rotate around the Y Axis when the mouse moves along the screen in X
// direction
var rotateX = identity.rotate(angleX, yAxisVector);
Поскольку goog.math.Vec3 минимизируется во время компиляции, теперь мы также разрешаем передачу оси в виде массива [x,y,z].
Но чтобы трансформировать объект, его проще использовать
var o = new X.object();
o.transform.rotateX(10);
o.transform.rotateY(10);
o.transform.rotateZ(10);
Просто обновление об этом: так как Google любезно внес некоторые существенные изменения в свою библиотеку замыканий, я нашел запись кватерниона, наиболее подходящую для решения этой проблемы. Спасибо всем за их комментарии!