C 将两个4x4矩阵合并在一起?

C 将两个4x4矩阵合并在一起?,c,3d,matrix,C,3d,Matrix,我的矩阵类型定义为: struct __transform_t { float m11, m12, m13, m14; float m21, m22, m23, m24; float m31, m32, m33, m34; float m41, m42, m43, m44; }; 我如何将一个矩阵合并到另一个矩阵?我想“合并”矩阵,以得到两个变换的组合结果。基本上,我正在尝试创建一个简单的分层系统,因此如果父层被转换,子层(在父层内部)也应该继承这些转换,并拥有

我的矩阵类型定义为:

struct __transform_t
{
    float m11, m12, m13, m14;
    float m21, m22, m23, m24;
    float m31, m32, m33, m34;
    float m41, m42, m43, m44;
};
我如何将一个矩阵合并到另一个矩阵?我想“合并”矩阵,以得到两个变换的组合结果。基本上,我正在尝试创建一个简单的分层系统,因此如果父层被转换,子层(在父层内部)也应该继承这些转换,并拥有自己的转换

我试着像下面的例子那样做,但我认为这不是正确的方法:

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
}

这听起来像,所以向上看。由于矩阵中的每个值都有显式字段,因此很难编写循环实现。

如果它们是线性变换,您能否不简单地创建矩阵乘积结果?