2011-02-04 15 views
0

我實現一個列爲主轉換矩陣,它看起來是這樣的:變換比例似乎並沒有工作

|----------|  |------------|  |------------| 
| 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

是否有一個原因,你正在使用4x3矩陣,而不是4x4矩陣? – TheBuzzSaw 2011-02-04 23:23:40

+0

是的,減少了所需的存儲空間,因爲由於同一座標,底行自動被假定爲0,0,0,1。計算中隱含着最後一行。 – Grimless 2011-02-04 23:35:09

回答

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/