如何解决如何通过 TransformControls 在 Three.js 中围绕自己的中心旋转 Object3D
我想将 Object3D
(它的网格组)旋转 TransformControls
。
所以我将 TransformControls
附加到 Object3D
并将 TransformControls
的位置设置为 Object3D
的中心。
这是尝试过的代码:
let transformControl = new THREE.TransformControls(viewer.camera,viewer.canvas);
transformControl.setMode("rotate");
transformControl.setSpace("local");
let meshGroup = new THREE.Group();
// here I added lot of mesh to meshGroup.
............
let bBox = new THREE.Box3();
bBox.setFromObject(meshGroup);
let center = new THREE.Vector3(0,0);
center = bBox.getCenter(center);
center.sub(meshGroup.position);
transformControl.position.set(center.x,center.y,center.z);
transformControl.attach(meshGroup);
但是当我尝试使用 TransformControls
旋转时,Object3D
围绕世界轴而不是他自己的中心旋转。
我该如何解决?
请任何人帮忙。
PS:我不想移动 meshGroup 的位置。
解决方法
我遇到了同样的问题,我通过移动对象位置解决了居中问题。
看看下面的stackblitz。我在不知道您使用什么框架/库的情况下创建了这个示例,但我是用打字稿制作的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。