当前位置: 首页 > 面试题库 >

左手坐标系的历史原因

焦阎宝
2023-03-14
问题内容

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

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


问题答案:

根据这篇文章,这仅仅是因为这是电视机一直使用的方式(BTW并没有改变)。因此,这个早期的设计决策似乎今天仍然会产生影响。

早期的家用计算机通常连接到电视,因此自然会使用此坐标系。我猜想很多显示器都以相同的方式工作,只是因为制造商可以部分回收电子设备/逻辑设备。而且由于这是程序员使用的“自然”坐标系(请记住,那时我们必须在更低的级别上访问视频系统),因为大多数人已经习惯了,所以它只是卡住了。

该模型的例外是PostScript及其后续版本PDF。他们对纸张进行建模,因此并不局限于使用屏幕的坐标系来提高效率。像数学家通常那样,它们在左下角使用(0,0)。NeXT使用了一个名为Display
PostScript的视频系统,该系统是PostScript的扩展,可以在屏幕上绘图,因此使用了左下角(0,0)的PostScripts系统。今天的Mac
OS X衍生自NeXT,因此也使用此系统。在iOS上,Apple工程师决定将系统翻转为左上角(0,0)的更常见型号,以使开发人员从其他系统迁移时更加容易。



 类似资料:
  • 本文向大家介绍Cocos2d-x学习笔记之世界坐标系、本地坐标系、opengl坐标系、屏幕坐标系,包括了Cocos2d-x学习笔记之世界坐标系、本地坐标系、opengl坐标系、屏幕坐标系的使用技巧和注意事项,需要的朋友参考一下  cocos2d-x的坐标系很重要,想要学好该引擎,深入理解它的坐标体系很重要。注释写的很清楚了,对照上运行结果一块来看代码吧!

  • 和视图一样,图层在图层树当中也是相对于父图层按层级关系放置,一个图层的position依赖于它父图层的bounds,如果父图层发生了移动,它的所有子图层也会跟着移动。 这样对于放置图层会更加方便,因为你可以通过移动根图层来将它的子图层作为一个整体来移动,但是有时候你需要知道一个图层的绝对位置,或者是相对于另一个图层的位置,而不是它当前父图层的位置。 CALayer给不同坐标系之间的图层转换提供了一

  • 在上一个教程中,我们学习了如何有效地利用矩阵的变换来对所有顶点进行变换。OpenGL希望在每次顶点着色器运行后,我们可见的所有顶点都为标准化设备坐标(Normalized Device Coordinate, NDC)。也就是说,每个顶点的x,y,z坐标都应该在-1.0到1.0之间,超出这个坐标范围的顶点都将不可见。我们通常会自己设定一个坐标的范围,之后再在顶点着色器中将这些坐标变换为标准化设备坐

  • 本文向大家介绍d3.js 坐标系,包括了d3.js 坐标系的使用技巧和注意事项,需要的朋友参考一下 示例 在正常的数学坐标系中,点x = 0,y = 0位于图形的左下角。但在SVG坐标系中,此(0,0)点位于“画布”的左上角,当您将位置指定为绝对/固定并使用顶部和左侧控制位置时,它有点类似于CSS。元素的确切点。 必须牢记的是,随着SVG中y的增加,形状会向下移动。 假设我们要创建一个散点图,每个

  • 根据坐标系,如果只给定矩形的中心坐标以及宽度和高度,您将如何确定矩形的左上角坐标? 例如,矩形的中心坐标是(40,40),矩形的宽度为90,高度为60。

  • 历史 本书改编和包含了以下两本书的部分章节,这两本书均以GNU Free Documentation License发布。 How To Think Like A Computer Scientist: Learning with C++ 作者Allen B. Downey。原书由Green Tea Press发行,可以从http://www.greenteapress.com/下载到。 Prog