2012-08-29 79 views
1

我有一個被定義爲矩陣類型:Concat兩個4x4矩陣一起?

struct __transform_t 
{ 
    float m11, m12, m13, m14; 
    float m21, m22, m23, m24; 
    float m31, m32, m33, m34; 
    float m41, m42, m43, m44; 
}; 

我將如何Concat的一個矩陣到另一個?我想「合併」矩陣以得到兩個轉換組合的結果。基本上,我試圖做一個簡單的分層系統,所以如果一個父層被轉換,子層(它在父視覺內)應該也繼承那些轉換並且有它自己的。

我試圖做到像在下面的例子,但我不認爲這是正確的方式:

void transform_concat(transform_t* orig, transform_t* delta) 
{ 
#define __act(x) orig->m##x += delta->m##x; 

    __act(11); __act(12); __act(13); __act(14); 
    __act(21); __act(22); __act(23); __act(24); 
    __act(31); __act(32); __act(33); __act(34); 
    __act(41); __act(42); __act(43); __act(44); 

#undef __act 
} 
+1

如果它們是線性變換,你能不能簡單地創建矩陣乘積結果? – mathematician1975

回答