相关疑难解决方法(0)

将对象的旋转方向调整为THREE.JS中的样条点切线

我正在使用SplineCurve3仅在X轴和Y轴上绘制一条线,我有一个立方体成功动画沿着这条线使用spline.getPoint(t),其中t是0-1的时间.我试图通过使用点积的Y向量将立方体定向到线.

它几乎是对齐的,但是有点微不足道.我以为我会使用Y矢量的点积和当前点的切线作为旋转四元数的角度.

这是我的渲染功能:

function render() {

    var updateMatrix = new THREE.Matrix4(); 
    updateMatrix.setPosition(spline.getPoint(t));

    var angle = new THREE.Vector3(0,1,0).dot(spline.getTangent(t).normalize());

    var quat = new THREE.Quaternion;
    quat.setFromAxisAngle(new THREE.Vector3(0,0,1), angle);
    updateMatrix.setRotationFromQuaternion(quat);

    marker.rotation.getRotationFromMatrix(updateMatrix);
    marker.matrixWorld = updateMatrix;

    t = (t >= 1) ? 0 : t += 0.002;

    renderer.render(scene, camera); 
}
Run Code Online (Sandbox Code Playgroud)

这是一个演示我的问题的小提琴,有人能告诉我旋转方面出了什么问题吗?

你可以编辑我的 - jsfiddle示例

matrix quaternions three.js

6
推荐指数
1
解决办法
6927
查看次数

标签 统计

matrix ×1

quaternions ×1

three.js ×1