【问题标题】:Three.jsMesh Matrixworld does not update三.jsMesh Matrixworld 不更新
【发布时间】:2021-03-06 03:45:24
【问题描述】:

早上好,我正在尝试在每个平面上定位子面板,但似乎使用我用来创建网格(平面)的方法矩阵和 matrixWorld 没有更新。我需要“更新”每个平面矩阵,以便能够相应地平移和旋转子平面。下面我添加了一张带有几何生成步骤的图片。我正在使用 BufferGeometry 创建面板的顶点,然后对它们进行三角剖分以创建网格。下面我包括一步一步的图像。 任何帮助都会有所帮助!

Step by step - geometry generation

【问题讨论】:

    标签: javascript three.js


    【解决方案1】:

    最后,我想通了。我直接从角向量构建了变换矩阵4。也许它对某人有用(下面的代码):

    let vX = new THREE.Vector3(ndes[3][0] - ndes[0][0], ndes[3][1] - ndes[0][1], ndes[3][2] - ndes[0][2]).normalize(),
        vY = new THREE.Vector3(ndes[1][0] - ndes[0][0], ndes[1][1] - ndes[0][1], ndes[1][2] - ndes[0][2]).normalize(),
        vZ = new THREE.Vector3().crossVectors(vX, vY).normalize();
    
    let matrix = new THREE.Matrix4();
    matrix.set( vX.x, vY.x, vZ.x, ndes[0][0], 
                vX.y, vY.y, vZ.y, ndes[0][1], 
                vX.z, vY.z, vZ.z, ndes[0][2],
                0,    0,    0,    1);
    panels.applyMatrix4( matrix );
    

    paneling surfaces

    【讨论】:

      猜你喜欢
      • 2014-02-28
      • 2017-07-28
      • 2016-06-21
      • 2014-08-23
      • 1970-01-01
      • 1970-01-01
      • 2016-09-23
      • 2020-11-20
      • 1970-01-01
      相关资源
      最近更新 更多