javascript - tutorial - three.js案例




有对象围绕向量点 (2)

使用下面的代码允许对象以圆形模式移动。

        function orbitRight() {
            var x = thisObj.position.x;
            var z = thisObj.position.z;
            thisObj.position.x = x * Math.cos(.02) - z * Math.sin(.02);
            thisObj.position.z = z * Math.cos(.02) + x * Math.sin(.02);
        }

我目前正在寻找一种方法来有一个对象轨道的矢量坐标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的希望帮助!







three.js