在previous question中,我对建立最终变换矩阵的乘法顺序感到困惑,但是我没有清楚地描述这个问题。所以我在这里创建一个新问题。
作者说:
在这里,我们首先绕原点(0,0,0)旋转容器,然后旋转一次 它旋转了,我们将其旋转版本翻译到右下角 屏幕的一角。 记住实际的转换顺序 应该反读:即使在代码中我们先翻译并 然后旋转,实际的变换首先应用旋转 然后是翻译。
那么,为什么要按相反的顺序应用实际的转换顺序?
我已经在网上搜索过,发现它在某个地方被提及,例如lecture03 slide的第16页和this lecture的第12页,但他们都没有描述其背后的原因< / p>
答案 0 :(得分:0)
就像线性代数一样,运算顺序也相反。
答案 1 :(得分:0)
通常,这些操作是通过将给定的变换矩阵乘以模型视图矩阵(例如MV * T,其中MV是模型视图矩阵,而T是所讨论的变换)来定义的。
在变换链的末尾,几何向量在矩阵变换的累积集合上隐式右乘(例如MV * T1 * T2 * T3 * x,其中T1,T2和T3是变换(通常T1 =平移,T2 =旋转,T3 =比例),x是任何几何矢量)。因此,最后应用的变换实际上首先触摸了几何矢量(例如T3 * x)。它被有效地分组为(MV *(T1 *(T2 *(T3 * x)))),但是它当然等效于((((MV * T1)* T2)* T3)* x),因为矩阵乘法是关联的