围绕边缘而不是中心

时间:2016-10-10 12:30:32

标签: javascript three.js tween

注意我正在使用ThreeJS Library,也可以使用Tween

目前我有一个围绕它的中心旋转的杆。我希望它围绕世界的中心旋转(在这种情况下为0,0,0),但我现在完全坚持如何正确地做到这一点。想象一下它是围绕白球旋转的台球棒。如果有人可以帮助我,那将是值得赞赏的。

我想我必须根据它目前所处的角度改变它的位置,但不知道将如何完成。也许有一种更简单的方法来获得相同的结果,但我找不到任何结果。

我正在使用渲染循环中的以下内容为我的旋转设置动画:

//Animation
pole.rotateOnAxis(getAxis(angle), -Math.PI/2 - 0.1);
angle += 0.025;
pole.rotateOnAxis(getAxis(angle), Math.PI/2 + 0.1);

function getAxis(angle) {
 return new THREE. Vector3(-Math.sin(angle), 0, Math.cos(angle));
}

由于它是相当多的代码,我把它放在JSFiddle https://jsfiddle.net/1swsh0v5/1/

1 个答案:

答案 0 :(得分:0)

var render = function () {
    requestAnimationFrame( render );

    angle += 0.025;
    pole.position.x = 4 * Math.sin(angle);
    pole.position.z = 4 * Math.cos(angle);
    pole.rotation.y = angle - Math.PI/2;

    renderer.render(scene, camera);
};