將兩個 4x4 矩陣連接在一起? (Concat two 4x4 matrices together?)


問題描述

將兩個 4x4 矩陣連接在一起? (Concat two 4x4 matrices together?)

I have a matrix type that is defined as:

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

How would I concat one matrix to another? I want to "merge" the matrices to get a result that is a combination of both transformations. Basically, I'm trying to make a simple layering system, so if a parent layer is transformed, the child layer (that is visually inside the parent) should also inherit those transformations as well as have its own. 

I'm trying to do it like in the example below, but I don't think that is the right way:

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:

This sounds like transformation matrix compositing, so look up matrix multiplication. Since you have explicit fields for each value in the matrix, it'll be hard to write looping implementations.

(by Kristina Brooksunwind)

參考文件

  1. Concat two 4x4 matrices together? (CC BY‑SA 3.0/4.0)

#matrix #3d #C






相關問題

BLAS 子程序 dgemm、dgemv 和 ddot 不適用於標量? (BLAS subroutines dgemm, dgemv and ddot doesn't work with scalars?)

為什麼我們需要維護自己的矩陣來轉換遊戲對象? (Why we need to maintain our own matrices to transform Game objects?)

R 高斯消除和 qr 分解 (R Gaussian Elimination and qr factorization)

生成尺寸為 8x8 的正定矩陣 (Generating Positive definite matrix of dimensions 8x8)

替代在此 Ruby 代碼中使用基於時間間隔分配標籤的巨型 if/else (Alternative to using a giant if/else in this Ruby code that assigns labels based on the time interval)

如何創建一個行矩陣,其元素是我的 while 循環的迭代 (How to create a row matrix whose elements are the iterations of my while loop)

在Matlab中找到矩陣中相同元素的開始索引和結束索引 (Find the Start Index and End Index of the same Element in a Matrix in Matlab)

用 Matlab 寫一個方程(矩陣大小) (writing an equation with Matlab (Matrix size))

使用 numpy 或 pandas 從元組列表中為二元組創建頻率矩陣 (Create a frequency matrix for bigrams from a list of tuples, using numpy or pandas)

如何在循環和 if 語句中使用遞歸公式 (How to use recursive formula in loop and if statement)

如何從 p 值矩陣中獲得緊湊的字母顯示? (How to get a compact letter display from a matrix of p-values?)

刺激基質上的液體流動 (Stimulating Liquid Flow on Matrix)







留言討論