bos*_*972 5 javascript 3d augmented-reality three.js
您好,我实际上使用了 Three.js,我想通过 x 轴旋转我的 3d 模型,但是当我尝试代码时:object.rotation.x += 0.01;
它不像我想要的那样工作。下图说明了它现在在左图上的工作方式以及我想要在右图上的效果。PS:公爵的形状是我的3d模型

这里发生的情况是,网格的原点不在其中心,正如您的鸭子图片(做得好!)清楚地说明的那样。
解决方案是沿 Y 方向平移网格的顶点,使原点移至中间(另请参阅此答案):
geometry.translate( distX, distY, distZ );
Run Code Online (Sandbox Code Playgroud)
还有一种自动重置网格原点的方法,即使用边界框定义其中心(也就是说,您不必计算顶点应沿 Y 轴平移多远):
// Create a bounding box:
var box = new THREE.Box3().setFromObject( mesh );
// Reset mesh position:
box.center(mesh.position);
mesh.position.multiplyScalar(-1);
Run Code Online (Sandbox Code Playgroud)
然后将网格添加到枢轴对象:
var pivot = new THREE.Group();
scene.add(pivot);
pivot.add(mesh);
Run Code Online (Sandbox Code Playgroud)
(另请参阅此答案)。您现在应该能够根据需要绕 x 轴旋转鸭子。
| 归档时间: |
|
| 查看次数: |
2191 次 |
| 最近记录: |