码迷,mamicode.com
首页 > Windows程序 > 详细

C# 世界坐标 页面坐标 PageUnit PageScale

时间:2015-11-21 21:11:50      阅读:1235      评论:0      收藏:0      [点我收藏+]

标签:

PageScale:  获取或设置此 Graphics 的世界单位和页单位之间的比例。
PageUnit:  获取或设置用于此 Graphics 中的页坐标的度量单位。

话不多说,上代码:

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Graphics dc = e.Graphics;
            dc.PageUnit = GraphicsUnit.Pixel; // 页面坐标
            dc.PageScale = 0.5f; // 世界坐标和页面坐标比例系数

            Pen p = new Pen(Color.Red);

            int startX = 100;
            int startY = 100;
            Point startPoint = new Point(startX, startY);

            for (int i = 0; i < 100; ++i)
            {
                dc.DrawLine(p, startPoint, new Point(startX + i, startY));
            }
        }

再上图:

技术分享技术分享技术分享

PageScale = 0.5             PageScale = 1                                     PageScale = 2

 

由上可见,PageUnit = GraphicsUnit.Pixel,即显示的时候以像素为单位,程序画了 100 个坐标位置

PageScale = 1, 一个坐标位置对应一个像素,所以线的长度显示为100个像素

PageScale = 0.5,一个坐标对应0.5个像素,所以线的长度显示为50个像素

PageScale = 2,一个坐标对应2个像素,所以线的长度显示为200个像素(超出窗口大小了:D),上图可见线的宽度也变为2个像素了

 

综上:    页面坐标 = 世界坐标 * PageScale!!!   我理解的世界坐标即逻辑坐标,页面坐标即物理坐标或叫做设备坐标!

 

C# 世界坐标 页面坐标 PageUnit PageScale

标签:

原文地址:http://www.cnblogs.com/BornThisWay/p/4984667.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!