我正在做一些关于矩阵变换和纹理映射的问题,我遇到了两个我不知道如何得到答案的问题。答案以红色突出显示。(这些可以在 C++ 中实现,但在我这样做之前我只是想先熟悉一下转换)
对于矩阵变换,它不应该-1
(矩阵的右上角)用于平移而不是0
编辑:仍然需要第二个问题的答案
我的第二个问题是我不确定他们是如何得到的y coordinate for point D
我正在做一些关于矩阵变换和纹理映射的问题,我遇到了两个我不知道如何得到答案的问题。答案以红色突出显示。(这些可以在 C++ 中实现,但在我这样做之前我只是想先熟悉一下转换)
对于矩阵变换,它不应该-1
(矩阵的右上角)用于平移而不是0
编辑:仍然需要第二个问题的答案
我的第二个问题是我不确定他们是如何得到的y coordinate for point D
回答第一个问题:
生成的图像沿 x 轴压缩成一半,并沿 Y 轴拉长到两倍长度。
缩放矩阵就是答案。缩放矩阵是一个有元素的对角矩阵{X-scaling, Y-scaling, 1}
。
现在,
| 0.5 0 0 |
| 0 2 0 |
| 0 0 1 |
是一个典型的缩放矩阵。它将 x 轴缩放 0.5(也就是说,它将 x 轴拉伸(压缩)成一半)。这在 Matrix(1,1) 中很明显。
跨 Y 方向的缩放在 Matrix(2,2) 中给出。那边的2
意思是,Y轴被拉长了2倍。
注意:在这个问题中不涉及翻译。请注意,简单的缩放使它看起来像平移。
找到了第二个问题的答案。
B 点上方的角必须具有 y 坐标 1,否则您将看不到底面。因此,对于点 D,您需要 y 坐标 2。如果您从 B 到角点到 D 的线,那么 textre 图像将重复两次。