javascript - 轴改变旋转轴三个js
问题描述
您好,我实际上使用的是three.js,我想通过x 轴旋转我的3d 模型,但是当我尝试代码时:object.rotation.x += 0.01;
它不像我想要的那样工作。下图说明了它现在在左图中的工作方式以及我想要在右图中的内容。PS:像公爵一样的造型是我的3d模型
解决方案
这里发生的情况是您的网格的原点不在其中心,正如您的鸭子图片(做得好!)清楚地说明了。
一种解决方案是在 Y 方向上平移网格的顶点,使原点移到中间(另请参阅此答案):
geometry.translate( distX, distY, distZ );
还有一种自动重置网格原点的方法,方法是使用边界框定义其中心(即,您不必计算沿 Y 轴平移顶点的距离):
// Create a bounding box:
var box = new THREE.Box3().setFromObject( mesh );
// Reset mesh position:
box.center(mesh.position);
mesh.position.multiplyScalar(-1);
然后将网格添加到枢轴对象:
var pivot = new THREE.Group();
scene.add(pivot);
pivot.add(mesh);
(另请参阅此答案)。您现在应该能够根据需要围绕 x 轴旋转鸭子。
推荐阅读
- javascript - Sails js:在 Parasails/Vue.js 中使用 Vuex
- javascript - 无法访问事件内的变量
- json - 使用 ng run prerender 和生成的路由时出现角度“无法提取路由”
- python - 有没有办法将 HEX 或 RGB 格式转换为文本?
- python - 在 Holoviews Overlay 中默认/以编程方式静音/停用某些数据系列
- sql - 将 DEFAULT 值设置为 MariaDB 中的行位置
- c# - 使用 .NET SDK 从 Azure 文件共享下载空文件时出现 InvalidRange 错误
- python - 如何将 Python 列表作为单个电子邮件发送
- grails - 适用于 Grails 4 的 Java 和 Tomcat 的最新/最佳版本?
- r - 将多组 jpg 图像组合成一个 jpg/png r