【问题标题】:How to make rotation use 3X3 matrix in three.js如何在three.js中使用3X3矩阵进行旋转
【发布时间】:2018-07-30 02:30:12
【问题描述】:

我有一个 3X3 矩阵,如下所示:

[ a11  a12  a13 ]
[ a21  a22  a23 ]
[ a31  a32  a33 ]

但是如何在 THREE.js 中将此矩阵用于网格的旋转。

【问题讨论】:

    标签: three.js


    【解决方案1】:

    您想通过矩阵指定网格的方向。为此,您可以使用以下两种模式之一:

    var matrix = new THREE.Matrix4(); // create once and reuse it
    
    matrix.set(
        a11, a12, a13,  0,
        a21, a22, a23,  0,
        a31, a32, a33,  0,
          0,   0,   0,  1
    );
    

    如果您知道该矩阵是一个旋转矩阵(即不涉及缩放),

    mesh = new THREE.Mesh( geometry, material );
    
    mesh.quaternion.setFromRotationMatrix( matrix );
    

    否则,

    mesh = new THREE.Mesh( geometry, material );
    
    mesh.applyMatrix( matrix );
    

    three.js r.94

    【讨论】:

    • 它有效。谢谢。我还有一个平移坐标 [x1, y1, z1],一个 3X3 旋转矩阵 [a11 a12 a13] [a21 a22 a23] [a31 a32 a33],一个比例 [x2, y2, z2],如何将这些组合成一个4X4矩阵
    • mesh.quaternion.setFromRotationMatrix( matrix ); mesh.scale.set( x2, y2, z2 ); mesh.position.set( x1, y1, z1 ); 欢迎来到 SO。您可以通过单击复选标记来接受答案。
    猜你喜欢
    • 2011-06-17
    • 1970-01-01
    • 2021-02-27
    • 2016-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-01
    • 2020-04-19
    相关资源
    最近更新 更多