我正在实现一个列主要的转换矩阵,如下所示:
|----------| |------------| |------------|
| 0 3 6 9 | | RS R R X | | RS R R X |
| 1 4 7 10 | | R RS R Y | | R RS R Y |
| 2 5 8 11 | | R R RS Z | | R R RS Z |
|----------| |------------| | 0 0 0 1 |
|------------|
我知道缩放应该应用于位置0,4和8,但它似乎不起作用。我从四元数设置方向,设置适当的位置,然后尝试将我的缩放倍增到位置0,4和8.当这个变换被输入OpenGL时,我的形状伸展和挤压,并且不适当缩放。我在这里遗漏了什么,我认为缩放是沿对角线的简单乘法?我的方向应用程序相对简单,但是向其添加缩放操作会导致奇怪的剪切和挤压效果。我做错了什么?
答案 0 :(得分:4)
您想到的缩放矩阵仅对缩放或将其乘以现有变换有用。一旦基本转换不是身份,销售因素就适用于整个左上角3x3。只需评估乘法
/ Rxx Rxy Rxz \ / Sx 0 0 \
| Ryx Ryy Ryz | * | 0 Sy 0 |
\ Rzy Rzy Rzz / \ 0 0 Sz /
=
/ Rxx·Sx Rxy·Sy Rxz·Sz \
| Ryx·Sx Ryy·Sy Ryz·Sz |
\ Rzx·Sx Rzy·Sy Rzz·Sz /