为什么PyGame坐标系统的原点在左上角?

10 投票
1 回答
2663 浏览
提问于 2025-05-10 15:30

我已经使用PyGame一段时间了,期间我需要进行坐标转换,把数学上常用的坐标系统(原点在左下角)转换成PyGame的坐标系统(原点在左上角)。我发现这篇帖子对我帮助很大。

不过,我在想,为什么PyGame要使用这种奇怪的坐标系统呢?

相关文章:

  • 暂无相关问题
暂无标签

1 个回答

11

这不仅仅是PyGame的问题,而是一种老旧的图形显示约定。很多API(应用程序接口)允许你自定义自己的约定,但即使这样,它们在后台仍然是按照从左上角开始的约定来处理的。

这种约定的来源在老式CRT显示器上很容易理解。每一帧的扫描都是从上到下进行的,每一行又是从左到右扫描的。因为扫描是这样进行的,所以信号也是这样发送的,内存中的像素缓冲区也是按照这种方式组织的,这样硬件就能比较简单高效地逐行扫描内存来显示每一帧。

对于LCD和其他新型显示技术,我觉得这种约定主要是出于历史原因——这源于几十年前关于如何为电视信号和CRT显示器扫描图像的一个看似随意的决定。

撰写回答