java - 左手坐标系的历史原因

标签 java swing language-history

我发现 (0,0) 映射到屏幕的左上角有点不直观。在 Java Swing 中使用左手坐标系是否有历史原因?

虽然将其映射到右手系统并不太困难,但我很想知道使用左手系统是否有任何隐藏的好处。

最佳答案

根据 this article这仅仅是因为电视机一直都是这样(顺便说一句,这没有改变)。因此,这个早期的设计决策似乎对今天仍有影响。

早期的家用电脑经常连接到电视上,所以自然而然地使用了这个坐标系。我想很多显示器都以相同的方式工作只是因为制造商可以部分回收电子/逻辑。由于这是当时程序员使用的“自然”坐标系(请记住,那时候我们必须在低得多的级别上访问视频系统)它只是停留在大多数人习惯的状态。

此模型的异常(exception)是 PostScript 及其后继者 PDF。他们模拟了一张纸,因此不依赖于使用屏幕的坐标系来提高效率。他们在左下方使用 (0,0),就像数学家通常做的那样。 NeXT 使用称为 Display PostScript 的视频系统,它是 PostScript 的扩展,用于在屏幕上绘图,因此使用左下方带有 (0,0) 的 PostScripts 系统。今天的 Mac OS X 源自 NeXT,因此也使用了这个系统。在 iOS 上,Apple 工程师决定将系统翻转为左上角带有 (0,0) 的更常见模型,以便开发人员更容易从其他系统迁移。

关于java - 左手坐标系的历史原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6698817/

相关文章:

c - 为什么 C 编译器在外部名称前加上下划线?

Java HashMap 搜索

java - 用递归计算自然数的位数

java - 是否可以使用 nimbus laf 更改 jspinner 的背景?

java - 将 2 个标签放入 jframe 边框布局的中间

c - 为什么 C 编译器在外部名称前加上下划线?

Python:为什么 int 类没有像 `__lt__()` 这样丰富的比较运算符?

java - 节点(和对象)相互分配时实际如何工作

java - 为什么我不能删除我的雪碧

java - showMessageDialog 影响 KeyHandler