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 любезно внес некоторые существенные изменения в свою библиотеку замыканий, я нашел запись кватерниона, наиболее подходящую для решения этой проблемы. Спасибо всем за их комментарии!

Другие вопросы по тегам