我目前正在寻找一种使物体绕过矢量坐标0,0,0的方法。
例如,如果对象位于X300,Y50,Z200,则比我希望它绕0,0,0旋转,但我不想调整Y轴。我对数学不太好,事实证明这很难掌握。
最佳答案
好吧,轨道就意味着您有一个轴。 (0,0,0)只是3D空间中的一个点,因此您需要另一个点(-3,8,4)才能从中创建规格化轴。如果使用Three.js Object3D
,则只需将objects.up
属性标准化。但是我离题了,这是一个简单的矢量示例:
var startPoint = new THREE.Vector3( 0, 0, 0 );
var axisVector = new THREE.Vector3( -3, 8, 4);
var endPoint = new THREE.Vector3( 300, 50, 200 );
var rotation = 0.05;
var axis = startPoint.clone().sub(axisVector).normalize();
endPoint.applyAxisAngle( axis, rotation );
这是一个使用两个立方体而不是裸
Vector3
的here的小提琴。希望有帮助!