假设我需要变换圆柱体,首先我需要使用缩放矩阵(sx,sy,sz)并将其与平移矩阵(tx,ty,tz)相乘以形成一个新的矩阵,这两个矩阵。 => M = T * S。
然后我想在不使用任何函数的情况下计算矩阵M ^ -1的逆矩阵,我知道缩放矩阵的逆矩阵具有比例因子(1 / sx,1 / sy,1 / sz)和翻译矩阵的逆有(-tx,-ty,-tz),但是如何在C ++中没有任何函数的情况下得到M ^ -1?
答案 0 :(得分:0)
假设您想通过某些因子Sx,Sy和Sz来缩放矢量。这个转换矩阵如下所示:
Sx 0 0 0
0 Sy 0 0
0 0 Sz 0
0 0 0 1
然后,您想要通过某些因子Tx,Ty和Tz来平移矢量。现在的转换矩阵如下所示:
Sx 0 0 Tx
0 Sy 0 Ty
0 0 Sz Tz
0 0 0 1
此矩阵的反函数具体为
1/Sx 0 0 -Tx/Sx
0 1/Sy 0 -Ty/Sy
0 0 1/Sz -Tz/Sz
0 0 0 1
..只要Sx
,Sy
和Sz
都是!= 0
。
根据您的应用,您可能最好编写通用矩阵求逆方法。请注意,在某些情况下,转换(或任何)矩阵是不可逆的...就像您的一个或多个维度中的比例因子为0.更一般地说,当且仅当其行列式非零时,矩阵才是可逆的