3d - Three.js - 翻译与移动?

标签 3d three.js translation

假设我有一个自定义立方体网格,其原点位于其中一个角。 我想指定立方体的原点位于它的中心。 我知道我可以进行翻译,而且它似乎有效(我可以通过旋转立方体来证明它有效,立方体绕中点旋转)。

但是,我一直认为平移只是简单地移动到 3D 空间中的另一个点(而不是设置原点)。

我是否遗漏了一些东西,或者我只是混淆了实际上是同一件事的两件事?

* 总结 *

请注意,如果我想移动一个对象,我只需更新位置向量即可。 并应用翻译似乎是在更新原点。 我的困惑来自于我的理解,即“平移”只是在 3D 空间中“移动”对象的一个​​奇特术语。 因此,到底什么是平移(在 3d 空间中移动,或更新原点,或两者兼而有之)?

最佳答案

几何上的平移会移动原点:

var geometry = new THREE.CubeGeometry( 1, 1, 1 );
geometry.applyMatrix( new THREE.Matrix4().makeTranslation( 0, 0.5, 0 ) );

Object3D 上的平移会移动位置:

var obj = new THREE.Mesh(geometry, material);
obj.position.set(0.5, 0.5, 0.5);

关于3d - Three.js - 翻译与移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25821385/

相关文章:

python - 找到与另外 2 个点共线的 3d 点

3d - 设置/获取Matplotlib Axes3D的3D观看方向

ios - 使用SwiftUI rotation3DEffect时是否可以隐藏背面?

javascript - Three.js:使用鼠标选择一条线对象

excel - 使用 DeepL API 翻译文本

opencv - 从opencv中的视差图生成3D图像

javascript - 将 .obj 转换为 .js 文件

c++ - 最接近three.js的完整原生库是什么?

matlab - 将 MATLAB 代码转换为 Fortran

c++ - 动态 Qt 字符串翻译