C#坐标系

一、概述

从数学角度讲,Point是一个二维矢量,包含两个公共整型属性,属性用大写X和Y(c#中公共属性一般约定以大写字母开头)。当坐标不是整数值是float时,用PointF代替Point使用。

常用的Size和Point结构其实相同,也有两个整型属性Width和Height,也有变体SizeF,但两者使用方式不同。Point是说明实体在什么地方,而Size用于说明实体多大,它们之间可以显示转换。一个Point和一个Size可以组成一个Rectangle。另外Point和Size可以进行加减运算:point-size=point;size+size=size;但是point+point (是错误的),Point相加会认为没有意义。

在winform 中的坐标系主要分为三类:

1.  一类是屏幕坐标系,以显示屏左上角为(0,0)点的坐标,横坐标从左到右增加,纵坐标从上到下增加。

2.  第二类是窗体坐标系,以winform窗体左上角为(0,0)点,横坐标从左到右增加,纵坐标从上到下增加。

3.  第三类是窗体控件坐标系,以该控件的左上角为(0,0)点,横坐标从左到右增加,纵坐标从上到下增加。

并提供了这三类坐标相互转换的方法,如PointToClient()、PointToScreen()等。

二、鼠标在窗口中的坐标;

鼠标事件中,鼠标位置使用的是第二类的窗口坐标系。可以使用PointToScreen()方法将鼠标坐标转换为屏幕坐标系。

例:

Point p = this.PointToScreen(new Point(e.X, e.Y));

三、坐标合成:Point.Offset(Point p)

可以将两个point坐标进行合成

C# 坐标系的更多相关文章

  1. 获取Canvas当前坐标系矩阵

    前言 在我的另一篇博文 Canvas坐标系转换 中,我们知道了所有的平移缩放旋转操作都会影响到画布坐标系.那在我们对画布进行了一系列操作之后,怎么再知道当前矩阵数据状态呢. 具体代码 首先请看下面的一 ...

  2. Canvas坐标系转换

    默认坐标系与当前坐标系 canvas中的坐标是从左上角开始的,x轴沿着水平方向(按像素)向右延伸,y轴沿垂直方向向下延伸.左上角坐标为x=0,y=0的点称作原点.在默认坐标系中,每一个点的坐标都是直接 ...

  3. 北京54全国80及WGS84坐标系的相互转换

    这三个坐标系统是当前国内较为常用的,它们均采用不同的椭球基准.其中北京54坐标系,属三心坐标系,大地原点在苏联的普而科沃,长轴6378245m,短轴6356863,扁率1/298.3:西安80坐标系, ...

  4. OpenGL中坐标系的理解(一)

    在OpenGL中,存在着至少存在着三种矩阵,对应着函数glMatrixMode()的三个参数:GL_MODELVIEW,GL_PROJECTION,GL_TEXTURE. 以下主要描述GL_MODEL ...

  5. 各类坐标系相互之间的转换(84互转GC02,GC02互转BD09)

    在遥感行业我们经常会用到各类的坐标系相互之间的转换,常见的度分秒转化为度很简单,直接上代码: //经纬度 ////118度48分54.152秒=118+(48/60)+(54.152/3600)=11 ...

  6. qgis自定义坐标系与qgis.db问题

    将编译好的qgis库整理,屏蔽获取删除环境变量中的路径,测试qgis.exe程序功能 如出现如上提示: 原因:是未找到qgis.db文件,无法拷贝到系统默认的C:/Users/Administrato ...

  7. 多种坐标系之间的转换 Proj.NET和DotSpatial

    Proj.NET ( http://projnet.codeplex.com/)是一个.NET下开源的空间参照和投影引擎,遵循OGC相关标准.负责人(Coordinators )是D_Guidi 和S ...

  8. 天津政府应急系统之GIS一张图(arcgis api for flex)讲解(三)显示地图坐标系模块

    config.xml文件的配置如下: <widget left="3" bottom="3" config="widgets/Coordinat ...

  9. GPS各种地图坐标系转换(转载)

    http://my.oschina.net/fankun2013/blog/338100 地图供应商比较多,产生了许多地图坐标.地图坐标正确转换是个问题.在之前开发地图应用的时候发现从WGS84坐标系 ...

  10. [转]iOS开发中的火星坐标系及各种坐标系转换算法

     iOS开发中的火星坐标系及各种坐标系转换算法 源:https://my.oschina.net/u/2607703/blog/619183   其原理是这样的:保密局开发了一个系统,能将实际的坐标转 ...

随机推荐

  1. 【ASP.NET】UCenter实现多站点同步登录退出

    利用UCenter实现discuz论坛和应用网站同步登录和退出功能 测试环境:Discuz! X3.2.UCenter 1.6..Net Framework 4.0 进入Discuz 后台的UCent ...

  2. python全栈开发day71-ajax

    一.django中间件 1 中间件的用处(针对请求和响应做全局的操作时) 可以做登录验证 访问限制 2. 自定义中间件,五个方法和三个要点 三个要点: 1.执行时间和执行顺序 2.参数 3.返回值 1 ...

  3. es6 promise对象

    function next(){ return new Promise( function( resolve, reject ){ var num =7 // Math.floor( Math.ran ...

  4. JS uint8Array转String

    Uint8Array转字符串 function Uint8ArrayToString(fileData){ var dataString = ""; ; i < fileDa ...

  5. BZOJ4319 cerc2008 Suffix reconstruction 字符串 SA

    原文链接http://www.cnblogs.com/zhouzhendong/p/9016336.html 题目传送门 - BZOJ4319 题意 给出一个$1,2,\cdots,n$的排列,第$i ...

  6. 011 SpringSecurity的基本原理

    一:securuty默认情况 1.默认的配置 在引用security依赖以后,会有一个配置 security.basic.enabled=true 2.启动 用户名:user 密码:在控制台上查看 3 ...

  7. 转载:搭建完整的arm-linux-gcc等交叉编译环境(感谢CSDN博主的分享)

    安装环境 Linux版本:Ubuntu 12.04    内核版本:Linux 3.5.0   交叉编译器版本:arm-linux-gcc-4.4.3 这个版本的交叉编译器 安装前的絮叨 首先简单介绍 ...

  8. python3 在 windows 读取路径多了一个\u202a 是咋回

    python3 在 windows 读取路径多了一个\u202a 是咋回事

  9. Linux学习之进程管理(十九)

    Linux学习之进程管理 进程查看 查看系统中所有进程,使用BSD操作系统的格式 语法:ps aux 选项: a:显示所有前台进程 x:显示所有后台进程 u:显示这个进程是由哪个用户产生的 语法:ps ...

  10. Logstash读取Kafka数据写入HDFS详解

    强大的功能,丰富的插件,让logstash在数据处理的行列中出类拔萃 通常日志数据除了要入ES提供实时展示和简单统计外,还需要写入大数据集群来提供更为深入的逻辑处理,前边几篇ELK的文章介绍过利用lo ...