【问题标题】:Negative scale in axis Y using applyMatrix does not work使用 applyMatrix 在 Y 轴上的负比例不起作用
【发布时间】:2013-10-10 08:57:00
【问题描述】:

我正在创建一个网页来说明 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.set(scaleX,scaleY,scaleZ) 正确执行第一个转换,但我无法与其他转换链接。我的应用程序需要用户可以在同一场景中进行多次转换。

提前致谢

【问题讨论】:

标签: three.js


【解决方案1】:

您的矩阵不正确。 尝试:

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 坐标。
猜你喜欢
  • 2022-01-06
  • 1970-01-01
  • 1970-01-01
  • 2017-05-09
  • 2019-04-20
  • 2021-02-08
  • 1970-01-01
  • 2017-07-17
  • 1970-01-01
相关资源
最近更新 更多