转换矩阵集属性

Transformation Matrices set Properties

本文关键字:属性 转换      更新时间:2023-10-16

我想编写自定义矩阵类,它允许我执行以下操作:

Matrix m = Matrix().identity();
m.rotateAngle(30);
m.scale(2.0);
m.scale(1.5);
m.rotateAngle(30);

上面的所有操作对我来说都很清楚,但现在我想做这样的事情:我想写一个函数,比如:setRotateAngle或setScale这将设置值传递的内容,无论当前值中的内容

如何
// for example:
m.setAngle(45); // clears the currentRotationAngle and then sets rotation to 45

有没有办法做到这一点?或者游戏引擎之类的东西只是重建矩阵如果有人想设置一些属性?

是否有一些教程可以帮助我理解这个问题?

我认为您并不真正了解转换矩阵的工作原理以及它们是如何组成的。我可能是错的,但如果你问这个,我怀疑是。

你应该问自己:我将如何回答这个问题(这是关于2D的)?

考虑原点处的正方形。
旋转为 4 度。
用 (4,4) 翻译。
将旋转设置为 10 度。

你会在粗体的步骤中做什么?对我来说,这完全没有意义。

所以,我想你将不得不重构一个矩阵。考虑使用矩阵堆栈,您可以通过将其弹出来将要稍后返回的矩阵推送到该堆栈。