如何应用矩阵 - 理解请求

时间:2012-11-13 00:04:38

标签: c matrix

假设我有一个立方体

P1(0, 0, 0) P5(0, 0, 1)
P2(1, 0, 0) P6(1, 0, 1)
P3(0, 1, 0) P7(0, 1, 1)
P4(1, 1, 0) P8(1, 1, 1)

现在我需要应用变换/旋转/缩放矩阵。说,

transform = Pt(3, 3, 5)
rotation = 30º
scale = 2x`

确定。但是,为了得到最终结果,我在哪里将这些值中的每一个放入矩阵中?这让我很困惑。

修改

让我们说,对于P2,我有:

| 1 |   | a b c |
| 0 | x | d e f | = R
| 0 |   | g h i |

但我在a,b,c,d,...i中有什么?

2 个答案:

答案 0 :(得分:3)

要通过一次操作完成,您需要一个4x4矩阵。请查看http://www.engineering.uiowa.edu/~ie_246/Lecture/OpenGLMatrices.ppt以获取一些详细信息和示例。

最后你链接这样的转换

point[i] = T1*T2*T3*..*vertex[i]

PDF Conversion

答案 1 :(得分:0)

立方体角上的8个点中的每个点都是3x1向量。您的矩阵变换是3x3 matricies。

围绕什么轴旋转?这将改变旋转矩阵的样子。这是关于x轴的内容:

     | +cos(theta) -sin(theta)  0 | 
Rx = | +sin(theta) +cos(theta)  0 |
     | 0           0            1 |

比例很简单:将所有x坐标乘以2倍。

    | 2  0  0 |
S = | 0  1  0 |
    | 0  0  1 |

将这些应用于您的每一点。