在three.js中缩放一个物体

20

在我尝试对一个立方体对象进行缩放时,出现了Matrix3.getInverse():无法求逆矩阵,行列式为0的错误。 three.js 3976

var object = new.THREE.Mesh(geometry, material)
 xScale = 0.1;
 object.scale.x = object.scale.y = object.scale.z = xScale;

有人能帮助我摆脱这个困境吗。


3
object.scale.set(xScale, xScale, xScale) - uhura
2
Uhura 意思是 object.scale.set(xScale, yScale, zScale)。 - pkout
2
@uhura 为什么需要这样做?object.scale是一个Vector3,因此应该与(例如)object.position完全相同地进行修改...实际上,使用set并没有解决任何问题(我刚试过)。 - Bakuriu
有人解决了这个问题吗?:'( - santa
2个回答

17

Matrix3.getInverse(): 无法求逆矩阵,行列式为0通常发生在scale.xscale.yscale.z中有任何一个为0时。请确保您没有将物体缩放为0。


0

我认为你可能正在尝试使用Matrix3,而需要的是Matrix4。至少在three.js库的r61版本中,你所提到的行正在从矩阵数组中超出索引8(即16个元素的矩阵与9个元素的矩阵不同)。

如果你需要更多建议,请提供一些代码和描述,说明你想通过逆矩阵实现什么目标,祝你好运!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接