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个像素。通常这些像素从窗口客户区域的左上角开始测量,如上面的示例所示。但是,情况并不总是如此。例如,在某些情况下,需要以窗口的左上角为原点来绘图,甚至以屏幕的左上角为原点来绘图。但在大多数情况下,除非文档说明书说明,否则都可以假定像素值是相对于客户区域的左上角的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/453529.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开博第一篇,聊聊 最基本的 “==” 与 “===”区别

“”与“”都是比较左右两个值是否相等,但它们的原理是不同的,特别要理解“”的比较。 “”是弱比较,如果左右两边的比较数类型不同,它们会转换成相同类型,再进行比较,那么问题来了,它们是怎么进…

面向对象的故事~数据底层操作告诉了我们接口,抽象类,继承与多态性的使用~续(TestBase继承ITest是多余的?)...

在我上一篇文章发表后,收到了很多博友的回复,其中有一位博友提了一个问题,TestBase 继承了ITest是多余的,我认为,我有必要再写一篇文章来说明一下,TestBase为什么要继承ITest,当然各位也可以再次发表自己的…

java样式是什么_java css样式 css样式的种类 选择器 文本相关样式 背景相关样式 边框 盒子模式...

今日内容:? CSS样式? CSS样式的种类? 选择器? 文本相关样式? 背景相关样式? 边框? 盒子模式select标签下拉列表标签,常用于单选和多选,是一个组合标签,需要和子标签option一起搭配使用,不会独占一行常用属性:? name属性:发送给服务器使用的? multiple属性:不写默认单选…

surfaceView和View区别

surfaceView和View最本质的区别在于: ---------------------------------------------------------------------------------------------------surfaceView是在一个新起的单独线程中可以重新 绘制画面,而View必须在UI的主线程中更新画面。那么在UI的主线…

一个漂亮的输出MySql数据库表结构的PHP页面

经常为了方便和直观,我们会首先直接在数据库中设计出表,但是接下来又要将表的结构和设计编写在设计文档中,以便编码的时候可以直观的查询,一旦数据库表非常多,字段非常多的时候,这无疑是件非常郁闷的工作。…

如何成就百万点击的名博

时近年底,去年我写过《程序员过年——想想自己到底想干啥》,今年我想说说如何成就自己的百万点击技术博客。 在当下博客世界里,动辄过千万甚至过亿的博主并不少见,但谈到程序员圈子里面,过百万已算是不错的成绩。CSDN现…

mysql5.7主从复制遇到的坑

datadir/var/lib/mysqlsocket/var/lib/mysql/mysql.sockreplicate-do-dbshoppingbinlog-do-dbshopping #复制的库server-id 3#skip-grant-tables 1symbolic-links0replicate-do-dbshop #需要复制的库binlog-do-dbshop tmpdir /tmp #这个最好给个目录 否则会报错 &#xff0c…

JAVA读取2g数据的速度_Java 读取大容量excel

项目要求导入excel, 但是文件很大,一次性读进去会导致内存不足而报错,下面是我解决的方法:首先倒入需要的jarorg.apache.poipoi-ooxml3.17org.apache.poipoi-ooxml-schemas3.17org.apache.poipoi3.17com.monitorjblxlsx-streamer1…

String(byte[] bytes, int offset, int length)

public String(byte[] bytes, int offset, int length)通过使用平台的默认字符集解码指定的 byte 子数组,构造一个新的 String。参数: bytes:要解码为字符的 byte offset: 要解码的第一个 byte 的索引 length: 要解码的…

java 属于以下哪种语言_Java属于以下哪种语言?( )

对于宝来(Bora2004)轿车EPS系统,属于当转向扭矩传感器G269发生故障时,只需单独更换转向扭矩传感器就行了。一般说来,下语可以根据下列因素判断趋势线的有效性 ( )。关于股价的移动规律,属于下列论述不正确的是( )。如果希望预测未…

logback 配置

logback 的使用说明 1、maven 依赖配置 <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><logback.version>1.1.7</logback.version><slf4j.version>1.7.21</slf4j.version></properties><…

android 的各种文件类

File文件类 使用户可以忽略不同操作系统带来的影响 可以抽象文件的路径方式---------------------------------------------------------------------------------RandomAccessFile主要用来进行对文件操作的类 它并不继承inputStream 是一个独立设计的用来进行文件操作的类----…

C#设计模式(19)——状态者模式(State Pattern)

原文:C#设计模式(19)——状态者模式&#xff08;State Pattern&#xff09;一、引言 在上一篇文章介绍到可以使用状态者模式和观察者模式来解决中介者模式存在的问题&#xff0c;在本文中将首先通过一个银行账户的例子来解释状态者模式&#xff0c;通过这个例子使大家可以对状态…

OLTP与OLAP

当今的数据处理大致可以分成两大类&#xff1a;联机事务处理OLTP&#xff08;on-line transaction processing&#xff09;、联机分析处理OLAP&#xff08;On-Line Analytical Processing&#xff09;。OLTP是传统的关系型数据库的主要应用&#xff0c;主要是基本的、日常的事务…

揭秘IT人才特点:中美印日四国程序员比较

揭秘IT人才特点&#xff1a;中美印日四国程序员比较 最近以裁判的身份参加了公司举办的编程大赛&#xff0c;发现高手云集&#xff0c;对公司内部的程序员能力也有了更深入的了解。我觉得编程能力对程序员而言&#xff0c;虽然很重要&#xff0c;但并不是全部。那么作为一个程…

BaseColumns类的作用

这个类只是提供了两个字段&#xff0c;一个是"_id"一个是"_count"&#xff0c;便于调用数据库时导致拼写错误&#xff0c;你也可以扩展它&#xff0c;或者自定义这么个&#xff0c;然后直接调用它的常量名&#xff0c;防止写sql语句时把列名拼错 /** Copyr…

java如何限制输入值_[限制input输入类型]常用限制input方法

常用限制input的方法1.取消按钮按下时的虚线框,在input里添加属性值 hideFocus 或者 HideFocustrueinput type"submit" value"提交" hidefocus"true"2.只读文本框内容,在input里添加属性值 readonlyinput type"text" readonly3.防止退…

如何规范 CSS 的命名和书写

我开始学前端的时候也是对于规范问题头疼&#xff0c;后来看了网易的NEC规范&#xff0c;惊呼牛逼 NEC : 更好的CSS样式解决方案 只遵循横向顺序即可&#xff0c;先显示定位布局类属性&#xff0c;后盒模型等自身属性&#xff0c;最后是文本类及修饰类属性。 →显示属性自身属性…

app性能测试指标

性能测试在软件的质量保证中起着重要的作用&#xff0c;它包括的测试内容丰富多样。中国软件评测中心将性能测试概括为三个方面&#xff1a;应用在客户端性能的测试、应用在网络上性能的测试和应用在服务器端性能的测试。通常情况下&#xff0c;三方面有效、合理的结合&#xf…

《学做程序经理》完整版

文/Joel Spolsky 译/罗小平 指派一名优秀的程序经理&#xff0c;是团队产出优秀软件的重要前提之一。你的团队里可能没有这样的人&#xff0c;其实绝大多数团队都没有。 Charles Simonyi&#xff0c;这位曾与MarthaStewart&#xff08;译者注&#xff1a;美国女富豪&#…