Three.js 使用applyMatrix在Y轴上进行负比例缩放不起作用

Three.js 使用applyMatrix在Y轴上进行负比例缩放不起作用,three.js,Three.js,我正在创建一个网页来演示3D转换,我正在使用Three.js。当我尝试在Y轴上进行负比例缩放时,我检测到一个问题。在这种情况下,对象不受影响,应进行面反转,但不受影响。然而,对于X轴或Z轴的负比例,它工作得很好。有什么帮助吗?这是我的代码: var m = new THREE.Matrix4( scaleX, 0, 0, 0, 0, scaleY, 0, 0, 0, 0, scaleZ, 0, 0,

我正在创建一个网页来演示3D转换,我正在使用Three.js。当我尝试在Y轴上进行负比例缩放时,我检测到一个问题。在这种情况下,对象不受影响,应进行面反转,但不受影响。然而,对于X轴或Z轴的负比例,它工作得很好。有什么帮助吗?这是我的代码:

var m = new THREE.Matrix4(
    scaleX, 0,      0,      0,
    0,      scaleY, 0,      0,
    0,      0,      scaleZ, 0,
    0,      0,      0,      1 
);
cube.applyMatrix(m);
如果我使用cube.scale.setscaleX、scaleY、scaleZ,第一次转换的执行是正确的,但我不能与其他转换链接。对于我的应用程序,我需要用户可以在同一场景中进行多个变换


提前感谢

您的矩阵不正确。 尝试:

var m = new THREE.Matrix4(
    1, 0, 0, scaleX,
    0, 1, 0, scaleY,
    0, 0, 1, scaleZ,
    0, 0, 0, 1
);

cube.applyMatrix(m);

复制和,用于重新定位对象,而不是缩放对象。应用此矩阵后,值为对象位置的新x、y和z坐标。