注册 登录
编程论坛 C语言论坛

作为一个新手近来看书,看到坐标与映射,搞不太懂,能不能用简单话语说清楚坐标,逻辑坐标和设备坐标,为啥要区分它们?还有映射模式,为啥要映射?

himdonkin 发布于 2023-04-21 08:25, 243 次点击
作为一个新手近来看书,看到坐标与映射,搞不太懂,能不能用简单话语说清楚坐标,逻辑坐标和设备坐标,为啥要区分它们?还有映射模式,为啥要映射?
8 回复
#2
rjsp2023-04-21 08:36
坐标映射是中学生的教学内容
因为逻辑坐标与设备坐标常常不一致,所以需要映射
映射模式提供了几种常用的坐标映射,免得这些常用的坐标映射也需要自己写
#3
apull2023-04-21 09:27
举个栗子,显示屏的像素点是固定的,但是分辨率可以设置为1920x1080或1366x768等等,显示出来的文字等不会变形。
#4
forever742023-04-21 11:01
你站在那儿,描述前后左右的时候有没有想过别人听不懂?
这是逻辑描述。
地图呢,上北下南。
这是设备描述。
你面向正南站着,你说的左我能理解为东方。
这叫映射。
#5
qqpetbill2023-04-21 14:41
最直观的例子是屏幕显示跟打印机,他们的dpi不一致,dpi是dot per inch,每英寸有多少个点.
这样有了逻辑坐标和设备坐标的映射就很容易处理所见即所得了.
可以使用逻辑坐标统一表示一个长度,再依据不同的设备采用不同的映射就能达到一致的表现.
逻辑坐标都用100cm表示,但画到屏幕跟画到打印机的点数不一样,如果都只有设备坐标,就会导致同样的100,一个长一个短
#6
himdonkin2023-04-21 16:27
回复 4楼 forever74
对的,感谢,搞懂了
#7
东海ECS2023-04-21 18:59

当我们在Windows程序中绘制图形时,不同的窗口、设备、分辨率会导致图形的大小和位置不同。在这种情况下,了解坐标和映射是非常重要的。

首先,坐标是指用于定位画布上点的一组数值。在Windows程序中,通常有两种坐标:逻辑坐标和设备坐标。

逻辑坐标是与窗口或屏幕的实际大小无关的抽象坐标,它表示需要展示的图形和文字的大小和位置。例如,当我们在一个600x400的窗口中画一个圆形时,逻辑坐标可以定位这个圆形的中心点坐标(300,200),而不受窗口大小的影响。

而设备坐标则是与显卡和屏幕分辨率相关的实际坐标,它是在显示图形时要用到的坐标。例如,当我们使用设备坐标画一个宽度为1像素的线时,它实际上是在显卡上分配的一组数字,并不是在逻辑坐标中展现的样子。

Windows系统提供了一种映射机制,可以将逻辑坐标和设备坐标互相转换,使得我们能够实现图形在不同窗口和不同屏幕上的大小和位置的统一性。

为什么要映射?因为不同的窗口和设备分辨率大小不同,如果我们在不同的窗口和分辨率下使用相同的逻辑坐标来绘制图形,就会导致图形的大小和位置不一致。映射的目的是使绘制的图形具有可移植性,可以在不同的设备和窗口上具有相同的视觉效果。

所以,了解坐标和映射是编写Windows图形应用程序的重要部分。明确逻辑坐标和设备坐标的区别,较好地掌握映射机制,可以在不同的设备和窗口上绘制具有一致视觉效果的图形。
#8
追梦人zmrghy2023-04-23 23:54
坐标,标示所在位置。。。

映射,标示 相坐标与绝对坐标的关系
#9
pvm20002023-04-24 09:16
这个世界有多种坐标系
1