我在旋转物体时遇到困难。我目前正在使用THREE.Shape
来配置自定义形状,在创建形状后,我将其配置为网格并将其位置设置为:
buildingMesh.position.set( -70, -300, levelY );
现在,由于mesh
以及camera
的位置,它看起来好像站起来了。
现在我最近添加了一个围绕世界轴旋转的Orbital
相机,一旦相机移动,这就是它的外观:
现在这是有道理的,因为在使用y axis
时从未配置Three.Shape
。我现在要弄清楚的是如何将该物体转动,使其看起来像是站立起来,如第一张图片所示。我尝试在x,y,z轴上使用旋转,但它似乎总是只在对象轴内旋转。
有什么建议吗?
我在另一个问题上发现了我试过的东西:
rotateAroundWorldAxis: function(object, axis, radians) {
this.rotWorldMatrix = new THREE.Matrix4();
this.rotWorldMatrix.makeRotationAxis(axis.normalize(), radians);
this.rotWorldMatrix.multiply(object.matrix); // pre-multiply
object.matrix = this.rotWorldMatrix;
object.rotation.setFromRotationMatrix(object.matrix);
}
答案 0 :(得分:0)
尝试:
mesh.rotate.x = Math.PI // will rotate over x axis 180 degree
其中'网格'是您创建的对象(您可以旋转' y'以及' z')
答案 1 :(得分:0)
因此,这里的主要问题是网格是由多个层构建的。所有这些图层实际上必须组合成一个Object3D
,这反过来又让我只做:group.rotateOnAxis(axis,Math.pow(Math.PI, 2) / 2);
希望这有助于将来的任何人。