1

我不知道这是否符合 StackOverflow 的问题,但在这里......

我有一个类,它有一个矩阵来表示它在 3D 空间中的转换,它有一个 bool 来检查这个矩阵是否需要更新(因为它似乎是一个昂贵的操作)。

基本上,我从以下位置计算最终矩阵:matrix4x4 中心 * matrix4x4 旋转 * matrix4x4 位置。

这个类有设置中心/旋转/位置的方法,所以每次设置一个新的值,我将bool设置为update为true,下次程序请求最终的矩阵时,我知道是否需要重新计算或不。

现在,问题是我正在创建使用此类的对象,并且我希望它作为可能使用它进行编程的任何人的接口。所以不要让程序员输入:

Object* myObject = new Object();
myObject->orientation.SetCenter(x1, y1, z1);
myObject->orientation.SetPosition(x, y, z);
myObject->orientation.SetRotation(angle, axis);

我想做,这样他们就可以输入:

Object* myObject = new Object();
myObject->position.x = x;
myObject->position.y = y;
myObject->rotation.angle = angle;

位置旋转是具有浮点值的矢量类。但是仅通过更改这些值,我无法确定如何判断转换矩阵是否应该更新。

有没有一种好且便宜(性能对我来说很重要)的方法来处理这个问题?

4

1 回答 1

2

在之前的这些问题中有一些很好的答案:

于 2013-08-25T22:21:39.633 回答