0

假设我有一个立方体

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什么?

4

2 回答 2

3

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

最后你像这样链接转换

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

PDF 转换

于 2012-11-13T00:16:47.997 回答
0

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

绕什么轴旋转?这将改变旋转矩阵的样子。以下是关于 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 |

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

于 2012-11-13T00:09:18.973 回答