C# winform坐标系类型详解
创始人
2025-05-31 03:19:02

C# winform坐标系类型详解

GDI+ 使用三个坐标空间:世界、页面和设备。 世界坐标是用于为特定图形世界建模的坐标,并且是你传递给 .NET Framework 中的方法的坐标。 页面坐标指绘图图面使用的坐标系,例如窗体或控件。 设备坐标是在其上进行绘制的物理设备(如屏幕或纸张)所使用的坐标。 调用 myGraphics.DrawLine(myPen, 0, 0, 160, 80) 时,传递给 DrawLine 方法的点((0, 0) 和 (160, 80))位于世界坐标空间中。 在 GDI+ 在屏幕上绘制线之前,坐标要经过一系列转换。 一种称为世界转换的转换将世界坐标转换为页面坐标,另一种称为页面转换的转换将页面坐标转换为设备坐标。

转换和坐标系
假设你想要使用一个坐标系统,该坐标系的原点位于工作区的主体,而不是左上角。 例如,假设你希望原点距工作区左边缘 100 个像素,距工作区顶部 50 个像素。 下图显示了这样的坐标系。

在这里插入图片描述
调用 myGraphics.DrawLine(myPen, 0, 0, 160, 80) 时,你将得到如下图所示的线。
在这里插入图片描述
三个坐标空间中线的终结点的坐标如下所示:

坐标空间终结点坐标
World(0, 0) 到 (160, 80)
(100, 50) 到 (260, 130)
设备(100, 50) 到 (260, 130)

请注意,页面坐标空间的原点位于工作区的左上角;永远都是这样。 另请注意,由于度量单位是像素,因此设备坐标与页面坐标相同。
如果将度量单位设置为像素以外的其他单位(例如英寸),则设备坐标将不同于页面坐标。

将世界坐标映射到页面坐标的世界转换保存在 Graphics 类的 Transform 属性中。 在前面的示例中,世界转换是在 x 方向上平移 100 个单位,在 y 方向上平移 50 个单位。 以下示例设置 Graphics 对象的世界转换,然后使用该 Graphics 对象绘制上图所示的线:

myGraphics.TranslateTransform(100, 50);
myGraphics.DrawLine(myPen, 0, 0, 160, 80);

页面转换将页面坐标映射到设备坐标。 Graphics 类提供用于操作页面转换的 PageUnit 和 PageScale 属性。 Graphics 类还提供了两个只读属性 DpiX 和 DpiY,用于检查显示设备每英寸的水平和垂直点数。

可使用 Graphics 类的 PageUnit 属性来指定像素以外的度量单位。

备注

不能将 PageUnit 属性设置为 World,因为这不是物理单位,会导致异常。

以下示例绘制一条从 (0, 0) 到 (2, 1) 的线,其中点 (2, 1) 位于点 (0, 0) 的右侧 2 英寸和下方 1 英寸处:

myGraphics.PageUnit = GraphicsUnit.Inch;
myGraphics.DrawLine(myPen, 0, 0, 2, 1);

备注

如果在构造笔时未指定笔宽度,前面的示例将绘制一条宽 1 英寸的线。 可在 Pen 构造函数的第二个参数中指定笔宽度:

Pen myPen = new Pen(Color.Black, 1 / myGraphics.DpiX);

如果假设显示设备在水平方向上每英寸有 96 个点,在垂直方向上每英寸有 96 个点,则上例中线的终结点在三个坐标空间中的坐标如下:

坐标空间终结点坐标
World(0, 0) 到 (2, 1)
(0, 0) 到 (2, 1)
设备(0, 0) 到 (192, 96)

注意,由于世界坐标空间的原点位于工作区的左上角,因此页面坐标与世界坐标相同。

可将世界转换和页面转换组合在一起,以实现各种效果。 例如,假设你想使用英寸作为度量单位,并且你希望坐标系的原点距离工作区的左边缘 2 英寸,距离工作区的顶部 1/2 英寸。 以下示例设置 Graphics 对象的世界转换和页面转换,然后绘制一条从 (0, 0) 到 (2, 1) 的线:

myGraphics.TranslateTransform(2, 0.5f);
myGraphics.PageUnit = GraphicsUnit.Inch;
myGraphics.DrawLine(myPen, 0, 0, 2, 1);

下图显示了这条线和坐标系。

在这里插入图片描述
如果假设显示设备在水平方向上每英寸有 96 个点,在垂直方向上每英寸有 96 个点,则上例中线的终结点在三个坐标空间中的坐标如下:

坐标空间终结点坐标
World(0, 0) 到 (2, 1)
(2, 0.5) 到 (4, 1.5)
设备(192, 48) 到 (384, 144)

相关内容

热门资讯

Linux 信号(signal... 目录一、程序的运行状态二、信号捕捉流程   在处理信号的时候,其实要经过一系列流程的&...
黄瓜胶有什么好处 极速百科网 ... 黄瓜胶的好处有以下几点: 1、美白肌肤:黄瓜胶里面维生素C的含量非常多,能够有助于抑制黑色素的...
包公断案的歇后语,标题建议:《... 包公断案——铁面无私收到你的喜欢啦收到你的喜欢啦标题建议:《包公断案:公正无私,铁面无私的典范》包公...
硫离子的电子式怎么写,硫离子的... 硫离子的电子式为:S2-。硫是一种非金属元素,原子序数为16,在元素周期表中位于第三周期的VIA族。...
摇滚og是什么意思,摇滚OG指... 摇滚OG指的是元老级的摇滚歌手,是对这些歌手的肯定和赞扬。收到你的喜欢啦收到你的喜欢啦摇滚OG指的是...
用队列实现栈和用栈实现队列(C... 目录 一、用队列实现栈 二、 用栈实现队列 一、用队列实现栈 请你仅使用两个队列实现一个后入先出&...
代码随想录刷题-哈希表-两数之... 文章目录两数之和习题暴力解法哈希表 两数之和 本节对应代码随想录中:代码随想录...
凌恩生物明星产品:让你读懂细胞... 叶绿体和线粒体是真核细胞中不可或缺的重要细胞器,是第二套遗传信息系统,与...
密码如何“加盐加密”处理?程序... 目录 前言 一、手写加盐算法 1.1、加密 1.1.1、加密思路 1.1.2、加密简图 1.1.3、...
黑化什么意思网络用语 极速百科... 黑化,词语,也可指性情大变,比如原本某A是个文青,温文尔雅,突然某天某A大开杀戒,残忍无比,这就是所...
带有古和今的成语,古今的对话:... 带有古和今的成语有很多,例如:古为今用、古往今来、古稀之年、古今中外等等。这些成语都包含了古代和现代...
能力强的人有什么特点,标题建议... 能力强的人往往具备以下特点: 1. 学习能力:能力强的人通常能够快速学习新知识和技能,并能够灵...
跑步机怎么操作大图 极速百科网... 1. 启动跑步机:首先,确保跑步机已经插上电源,然后打开跑步机的电源开关。大多数跑步机都有一个启动/...
ELK+Filebeat+Ka... 文章目录ELK+Filebeat+Kafka分布式日志管理平台搭建为什么选择ELK&...
哈希结构的代码实现(开散列、闭... 哈希结构 unordered系列的关联式容器之所以查找效率比较高,是因为其底层使用了哈...
Java Annotation... 注解 注解(Annotation),又称元数据ÿ...
bim装配式工程师证书有用吗,... 首先,我们需要明确一点,那就是BIM装配式工程师证书肯定是有用的。这个证书证明了持有人掌握了BIM技...
什么东西可以深层清洁毛孔 极速... 首先,我们要明白,毛孔的深层清洁不仅仅是指清洁面部皮肤,还包括清洁身体和头发的毛孔。接下来,我将为你...
vip全称 极速百科网 极速百... VIP的英文全称为Very Important Person,中文翻译为重要人物、要员。一般指VIP...
公共交通工具有哪些 极速百科网... 1. 城市公交:这是大家最熟悉的公共交通工具之一,提供在城市内部的运输服务。公交车根据不同的大小和座...
智能火焰与烟雾检测系统(Pyt... 摘要:智能火焰与烟雾检测系统用于智能日常火灾检测报警,利用摄像头画面实时...
【学习笔记】《Writing ... 文章目录14 Energizing Writing 充满活力的写作14.1. ACTIVE VERS...
基于R语言因果关系推断模型实践... 通过数据得到可靠的因果关系一直是科学研究的主要目标之一。对因果关系的研究已经有千年之久;...
手机qq里怎么分组,手机QQ分... 1. 打开QQ应用,进入联系人界面。 2. 找到你想要分组的联系人或群聊。 3. 长按想...
带指的成语有哪些 极速百科网 ... 指日高升、一指蔽目、屈指可数、十指连心、三指佞臣、染指垂涎、戟指怒目、屈指可数。 如需更多含有...
第十八天 Vue-前端工程化总... 目录 Vue-前端工程化 1. 前后端分离开发 1.1 介绍 1.2 Yapi 2. 前端工程化 2...
急用钱公积金怎么提现,公积金提... 1. 了解公积金提现的条件和手续。在您考虑提现之前,请务必了解您所在地区的具体规定和要求。通常,您需...
杯子刻字励志八个字,志存高远,... 杯子刻字励志八个字建议如下: 1. 志存高远,自强不息。 2. 持之以恒,锐意进取。 ...
YOLOV4详解 1. 为什么要学习YOLOV4? 通过学习YOLOV3这个很重要的算法, 可以学习到作者重新设计Da...
提高曝光率:外贸网站如何充分利... 自从我从事外贸行业以来,谷歌优化一直是我关注的重点。 作为一个外贸从业者,...