three.js - 如何通过 TransformControls 在三个.js 中围绕自己的中心旋转 Object3D
问题描述
我想旋转Object3D
(它是网格组)TransformControls
。
所以我附加TransformControls
到Object3D
并设置了TransformControls
toObject3D
的中心位置。
这是尝试过的代码:
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,0);
center = bbox.getCenter(center);
center.sub(meshGroup.position);
transformControl.position.set(center.x, center.y, center.z);
transformControl.attach(meshGroup);
但是当我尝试使用 use旋转时TransformControls
,Object3D
围绕世界轴而不是他自己的中心旋转。
我该如何解决?
请任何人帮助。
PS:我不想移动meshGroup的位置。
解决方案
我遇到了同样的问题,我通过移动对象位置解决了居中问题。
看看下面的stackblitz。我在不知道您使用什么框架/库的情况下创建了这个示例,但我是用打字稿制作的。
推荐阅读
- reactjs - React 三元运算符防止使用样式化组件重复代码?
- python - 从数组中获取日期范围
- java - 无法通过 java/selenium 的文本文件获取多个用户名和密码
- cassandra - 在哪个列上创建布隆过滤器 - cassandra
- python - Python Selenium 点击打开 Chrome 打印对话框挂起
- xcode - 如何让 Xcode Archive 使用正确的配置信息?
- python - 基于 OpenCV 和 Python 中的颜色识别在 Arduino 中打开和关闭 LED
- laravel - 将 FormData 从 vue 传递到 laravel 控制器时出错
- cython - 确定翻译后的 cython pyx 源文件的路径
- python - 如何防止在 read_csv 上指定解码更改日期时间精度