我正在保存我的驱动X / Y坐标,然后使用将坐标转换为米的函数,并为每个点添加1280(因此它很适合2560x2560图像),然后在两者之间绘制一个多边形'点',导致某种赛车线。但是,一旦我生成多边形并将其保存为图像,它就会以某种方式垂直翻转。垂直翻转图像将使其与轨道位图完美匹配。有人告诉我这是因为DirectX内部有Y轴翻转。为什么DirectX使用翻转的Y轴?
答案 0 :(得分: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的主要目的是以一种方便的方式描述世界,而与屏幕的物理属性无关。