相对于局部旋转,将主体放在cannon.js中

时间:2017-10-18 12:55:34

标签: javascript three.js cannon.js

我在cannon.js中有一个四元数旋转的物体。我想沿着一个向量相对于它的局部旋转移动100个单位。

例如

let body = new CANNON.Body({ mass: 0 });
body.quaternion.setFromAxisAngle(new CANNON.Vec3(0,0,1),(2*Math.PI)/6);
body.position.set(0,0,100); //this is wrong

使用body.position.set(x, y, z);相对于世界移动身体而不是局部旋转。我认为我需要在将四元数应用到它之后添加一个向量,但cannon.js的文档并不是特别有用,所以我还没有弄清楚如何去做。

1 个答案:

答案 0 :(得分:1)

使用Quaternion#vmult方法旋转矢量,使用Vec3#add将结果添加到位置。

<ul id="names-list">
  <li></li>
  <li></li>
  <li></li>
  <li></li>
</ul>