Point和PointF
Point和PointF
Point在GDI+的结构中是最简单的,在数学上它完全等价于一个二维矢量,包含两个公共整型属性,表示它与某个特定位置的水平和垂直距离。例如,为了从点A到点B,需要水平移动11个单位,并向下垂直移动11个单位。在坐标图中使用x和y,可以通过如下代码创建一个Point结构来表示:
Point ab = new Point(11, 11);
Console.WriteLine("Moved {0} across, {1} down", ab.X, ab.Y);
其中,属性X和Y都是可读写属性,可以在Point中直接设置这些值,例如下面的代码:
Point ab = new Point();
ab.X = 11;
ab.Y = 11;
Console.WriteLine("Moved {0} across, {1} down", ab.X, ab.Y);
按照惯例,水平和垂直坐标表示为小写的x和y,但是对应的Point属性是大写的X和Y。这是因为在C#中,公共属性的一般约定是名称以大写字母开头。
PointF与Point完全相同,但X和Y属性的类型是float,而不是int。PointF用于坐标不是整数值的情况。已经为这些结构定义了数据类型转换,这样就可以把Point隐式地转换为 PointF。但是上述转换没有相应的逆过程,要把PointF转换为Point,必须显式地复制值,或使用下面的3个转换方法,即Round()、Truncate()和Ceiling():
PointF mm = new PointF(20.5F, 10.9F);
Point nn = new Point();
nn.X = (int)mm.X;
nn.Y = (int)mm.Y;
Point ab1 = Point.Roundmm);
Point ab2 = Point.Truncate(mm);
Point ab3 = Point.Ceiling(mm);
PointF mm = nn;
在默认情况下,GDI+是以电脑屏幕上的像素作为单位的,Graphics对象方法把它们接收到的坐标看作其参数的方式。例如,点new Point(20,10)表示在屏幕上水平移动20个像素,向下垂直移动10个像素。通常这些像素从窗口客户区域的左上角开始测量,如上面的示例所示。但是,情况并不总是如此。例如,在某些情况下,需要以窗口的左上角为原点来绘图,甚至以屏幕的左上角为原点来绘图。但在大多数情况下,除非文档说明书说明,否则都可以假定像素值是相对于客户区域的左上角的。
Point和PointF相关推荐
- Android 属性动画(Property Animation) ValueAnimator 的介绍
先说下属性动画与视图动画的区别: 视图动画系统仅提供为 View 对象添加动画效果的功能,因此,如果您想为非 对象添加动画效果,则必须实现自己的代码才能做到.视图动画系统也存在一些限制,因为它仅公开 ...
- Android 高清加载巨图方案 拒绝压缩图片
Android 高清加载巨图方案 拒绝压缩图片 转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/49300989: 本文出自: ...
- 戏说 .NET GDI+系列学习教程(三、Graphics类的应用_验证码)
关于Graphics也有了基本了解下面想说的的是学这个东东干什么呢,到底如何应用 目前常见应用 1.验证码(参照网上的) 2.打印排版(会提到关于条形码大小设置) 3.自定义控件 一.验证码 1 cl ...
- winform动态的文字效果
效果图如下 private void Form1_Load(object sender, EventArgs e){Graphics Car_Paint = panel1.CreateGraphics ...
- ASP.NET2.0打通文件图片处理任督二脉【月儿原创】
ASP.NET2.0打通文件图片处理任督二脉 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.4.1 1.最简单的单文件上传(没 ...
- ASP.NET图象处理详解
作者:未知 请与本人联系 在使用ASP的时候,我们时常要借助第三方控件来实现一些图象功能.而现在,ASP.NET的推出,我们已经没有必要再使用第三方控件来实现,因为ASP.NET 已经具有强大 ...
- android写代码截屏微信,android 模仿微信头像裁剪
android 在android开发中经常会碰到修改头像的功能需求, 而在修改头像>中最难的部分就是在头像的裁剪功能.虽说网上一大堆裁剪的例子,但最重要的是要理解里面的实现原理,这样以后自己改起 ...
- 使用bitblt提高GDI+绘图的效率(转)
最近在做使用GDI+绘制K线界面发现传统的GDI+绘制方式效率比较低,根本无法满足K线界面及时刷新的速度要求. 所以做了个GDI+绘制图形界面的试验,改试验主要在一个600×600的区域内每隔10MS ...
- 技术图文:如何改进算法的运行效率?
背景 前段时间,一位好友发给我如下的文件: 每个CSV文件中的数据由三个属性组成,第一个属性为ID,第二个属性为X坐标,第三个属性为Y坐标.由于是二维数据,可以绘制出每个文件的散点图,把这些散点图连接 ...
最新文章
- VR Cinema 来了!未来的影院也许是酱紫滴
- ASP.NET MVC系列:添加控制器
- Windows Azure Cloud Service (27) 在Windows Azure发送邮件(上)
- 数据结构--百度百科
- sql查询两个表结果相减_SQL 操作结果集 -并集、差集、交集、结果集排序
- step2 . day5 C语言中的结构体和枚举
- 总结Java常见面试题和答案
- 群聊金山云与英特尔的“AI as a Service”,你都get到了什么?
- ThreadPoolExecutor中的keepAliveTime详解
- 清华2020计算机系张晨,2020清华特奖入围名单公布:电子系学霸两篇顶会一作
- 想赚钱广而告之是必不可少的
- 简单易懂源码解析字符串拼接
- BPM≠Workflow+EAI (上)
- ncm转MP3的工具
- 安装苹果电脑双系统 启动Windows时候鼠标键盘无反应
- C语言程序设计的七个准备步骤
- 设计模式(一) 简单工厂模式
- 用python找千字文的重复字
- 显卡内存一直被占用解决方式
- 对于bugku中杂项啊哒题的尝试解法