与常规数学坐标系相比,为什么软件经常使用逆坐标系?
Why does software often use an inverse coordinate system compared to regular math coord system?
你可能知道,在c#中,平面的原点(0,0)是左上角。向右 and/or 下方视为 +,向左 and/or 向上视为 -。与此相反的是常规数学坐标系:
(0,0)=平面中部,up/right = +,down/left = -.
这有点违反直觉,有时会很烦人,因为我们(多年)习惯于使用常规数学坐标,而且您还必须重新计算坐标。
这是一个基本的设计缺陷吗?一段时间后你会习惯吗?还有哪些其他语言使用不同的坐标系统,如 c#?
不是C#,而是使用逆坐标系的显示器,这是以前用CRT画显示器的时候画的,图像是从上到下,从左到右画的。这就是为什么坐标系 OS 的使用与之相匹配。
像 C# 这样的语言只是包装底层 OS 的 API,这就是 C# 也使用它的原因。
数学图形平面是一个虚的东西,向四面八方无限扩展
屏幕是真实的东西,根本无法展开
相反,我们使用滚动的概念,我们习惯于从起点向下滚动。
所以从概念上讲,图形系统都使用与(从左到右和从上到下)文本块或书中的页面相同的系统。它是关于我们如何滚动到 expand/advance 显示区域。
但它可以以任何其他方式定义;毕竟例如与负行号相反,负坐标确实有意义..
如果您不喜欢屏幕上的坐标系,您可以创建包装方法以任何您喜欢的方式重新映射坐标。
你可能知道,在c#中,平面的原点(0,0)是左上角。向右 and/or 下方视为 +,向左 and/or 向上视为 -。与此相反的是常规数学坐标系:
(0,0)=平面中部,up/right = +,down/left = -.
这有点违反直觉,有时会很烦人,因为我们(多年)习惯于使用常规数学坐标,而且您还必须重新计算坐标。
这是一个基本的设计缺陷吗?一段时间后你会习惯吗?还有哪些其他语言使用不同的坐标系统,如 c#?
不是C#,而是使用逆坐标系的显示器,这是以前用CRT画显示器的时候画的,图像是从上到下,从左到右画的。这就是为什么坐标系 OS 的使用与之相匹配。
像 C# 这样的语言只是包装底层 OS 的 API,这就是 C# 也使用它的原因。
数学图形平面是一个虚的东西,向四面八方无限扩展
屏幕是真实的东西,根本无法展开
相反,我们使用滚动的概念,我们习惯于从起点向下滚动。
所以从概念上讲,图形系统都使用与(从左到右和从上到下)文本块或书中的页面相同的系统。它是关于我们如何滚动到 expand/advance 显示区域。
但它可以以任何其他方式定义;毕竟例如与负行号相反,负坐标确实有意义..
如果您不喜欢屏幕上的坐标系,您可以创建包装方法以任何您喜欢的方式重新映射坐标。