0

我正在保存我的驱动 X/Y 坐标,然后使用将坐标转换为米的函数,并将 1280 添加到每个点(因此它将很好地适合 2560x2560 图像),然后在“点”之间绘制一个多边形,从而形成某种赛车线。但是一旦我生成了多边形并将其保存为图像,它就会以某种方式垂直翻转。垂直翻转图像将使其与轨道位图完美匹配。有人告诉我这是因为 DirectX 在内部翻转了 Y 轴。为什么 DirectX 使用翻转的 Y 轴?

4

1 回答 1

5

那么,问题是,DirectX 是否有翻转的 Y 轴或图像?

DirectX 使用 3D/4D 坐标系,当未应用任何变换时,X 轴指向右侧,Y 轴指向上方。这是因为屏幕(Y 轴指向下方)是必须处理图像的最后一个实例。之前的每一步都使用 Y 轴向上的坐标系。由于 Direct3D 是为 3D 世界而设计的,因此像世界一样对齐的坐标系和数学中的大多数坐标系对于程序员和设计人员来说更加方便。想象一下,您将创建一个 3D 模型。如果您将其设计为 Y 轴指向下方,这会不会有点奇怪?

当您根本没有允许透视等的转换时,您将拥有相同的坐标系。忽略Z轴,左上角为(-1 | 1),右下角为(1, -1)。这等于数学中使用的坐标系。最后,这个坐标系用视口变换,左上角为(0 | 0),右下角为(ResolutionX | ResolutionY)。

所以总而言之,Y轴向上的原因是Direct3D的主要目的是独立于屏幕的物理属性以方便的方式描述世界。

于 2012-04-19T12:46:13.487 回答