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相加会认为没有意义。

  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坐标进行合成

Original: https://www.cnblogs.com/zeroone/p/9770828.html
Author: 武胜-阿伟
Title: C# 坐标系

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/554430/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 用GO开发企业级分布式云存储系统

    一、基础架构 二、开发工具 posted @2019-04-20 14:05 努力哥 阅读(1724 ) 评论() 编辑 Original: https://www.cnblogs…

    技术杂谈 2023年5月31日
    085
  • kafka-consumer-groups命令行工具使用手册

    该手册原文出自 $KAFKA_HOME\bin\windows\kafka-consumer-groups.bat –help 命令的输出结果,并由 Redisant 提供翻译和…

    技术杂谈 2023年7月24日
    088
  • chmod 755 filename

    以下为正文 chmod是Linux下设置文件权限的命令,后面的数字表示不同用户或用户组的权限。 一般是三个数字: 第一个数字表示文件所有者的权限 第二个数字表示与文件所有者同属一个…

    技术杂谈 2023年6月1日
    084
  • Redis变慢?深入浅出Redis性能诊断系列文章(二)

    (本文首发于”数据库架构师”公号,订阅”数据库架构师”公号,一起学习数据库技术) 本篇为Redis性能问题诊断系列的第二篇,本文主要…

    技术杂谈 2023年7月25日
    078
  • 【Kubernetes系列】Kubernetes介绍以及架构

    文章目录 简介 应用部署历程 * 传统部署时代 虚拟化部署时代 容器部署时代 Kubernetes的用途 Kubernetes设计理念 Kubernetes架构设计原则 Kuber…

    技术杂谈 2023年7月24日
    0118
  • Vuex 简单使用

    官网:https://vuex.vuejs.org/zh/ 参考文章:https://www.cnblogs.com/chinabin1993/p/9848720.html Vue…

    技术杂谈 2023年7月25日
    071
  • BinaryBombs(二进制炸弹实验)

    实验介绍 使用所学知识拆除 Binary Bombs来增强对程序的机器级表示、汇编语言、调试器和逆向工程等理解。 Binary Bombs(二进制炸弹)是一个可执行程序,是 C语言…

    技术杂谈 2023年7月10日
    083
  • 检测微信好友是否删除自己

    使用itchat库,循环给好友发消息,如果谁发不出去,说明他把你删除了 import itchat import time itchat.auto_login(hotReload=…

    技术杂谈 2023年5月31日
    0102
  • mysql时间相减获取秒数

    ans time_to_sec(timediff(endTime, startTime)) timestampdiff(second, startTime, endTime) un…

    技术杂谈 2023年7月24日
    089
  • 蓝桥杯 2014届真题 地宫取宝 动态规划解法

    题目描述 X 国王有一个地宫宝库。是 n x m 个格子的矩阵。每个格子放一件宝贝。每个宝贝贴着价值标签。 地宫的入口在左上角,出口在右下角。 小明被带到地宫的入口,国王要求他只能…

    技术杂谈 2023年7月25日
    076
  • SkiaSharp常用操作

    SkiaSharp常用操作 屏幕的坐标系原点在屏幕的左上角,水平往右、竖直往下为正。屏幕的坐标横坐标用”x”表示,纵坐标用”y”表示…

    技术杂谈 2023年5月31日
    0114
  • 【Golang】golang实现md5加密函数

    golang实现md5函数 //md5加密 func Md5(src string) string { m := md5.New() m.Write([]byte(src)) re…

    技术杂谈 2023年6月1日
    092
  • 【干货】整理分布式技术框架常用的算法及策略

    将一些零散的知识点进行整理, 以便加深理解,方便查阅,也希望能帮到大家。 通过系统随机函数,根据后端服务器列表的大小值来随机选择其中一台进行访问。由概率统计理论可以得知,随着调用量…

    技术杂谈 2023年6月1日
    084
  • Linux 配置Git

    前言:请各大网友尊重本人原创知识分享,谨记本人博客: 南国以南i 一、用git –version命令检查是否已经安装 二、下载git源码并解压 wget https:/…

    技术杂谈 2023年7月11日
    081
  • manim 3.0优化

    1、注意不要在物体变换之后再添加其他相关物体,这样物体的初始化会在动画部分的后面 2、动画实现过程最主要还是物体的初始化,所以可以将动画部分和查看物体初始化部分分开(即将动画部分放…

    技术杂谈 2023年7月24日
    077
  • 斜率优化

    斜率优化 直接看例题 例题:P3195 解析 转移方程很简单: 这里(f[i])表示前(i)个物品的最优代价。(a)为(c)(如题目)的前缀和。 [a[i]=\sum_{j=1}^…

    技术杂谈 2023年6月21日
    0108
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球