THREE.js如何计算3D圆上的旋转位置?

时间:2016-09-05 20:45:03

标签: javascript 3d three.js rotation cannon.js

如下图所示,我有一个带有简单立方体的THREE.Scene。附加到立方体的是物理的CANNON.Body(以绿色线框表示)。

CANNON.Body从多维数据集偏移几个单位。对于旋转,此偏移将是半径

当我旋转立方体时,我希望CANNON.Body根据角度半径围绕立方体旋转。在图像的右侧,我以45度的角度旋转立方体(我也有弧度可用)。但是,CANNON.Body不会围绕立方体旋转,只围绕它自己的中心。我需要它来围绕所有轴 x y z 旋转围绕

THREE.js中是否有内置函数,或者我应该使用自己的数学方程?如果是这样,会是什么?

enter image description here

谢谢!

P.S。我已经看到了纯THREE.js场景的解决方案,其中几何体被转换为操纵枢轴点。由于我的CANNON.Body中没有几何图形,所以这是不可能的。

1 个答案:

答案 0 :(得分:0)

我从未使用过cannonjs,但是可以在Three.Group中添加Cube和Rigid Body吗?

var rigidBody = new CANNON.Body(); // whatever it is for cannon
var model = new THREE.Group();

// your model goes here
model.add(new THREE.Mesh(
  new THREE.BoxGeometry(1,1,1), 
  new THREE.MeshStandardMaterial()
));

model.add(rigidBody);
scene.add(model);

这样,如果您旋转父元素模型,刚体应该以相同的方式更新。