C# 由左上、右下两个坐标点计算矩形的长、宽以及两点的距离

一、计算长、宽

直接使用坐标点计算

// 定义矩形左上角和右下角的坐标
Point topLeft = new Point(0, 0);
Point bottomRight = new Point(5, 10); // 计算矩形的长和宽
int width = bottomRight.X - topLeft.X;//矩形宽度
int height = bottomRight.Y - topLeft.Y;//矩形高度

或是创建一个Rectangle,然后获取宽、高

//或是创建一个Rectangle。然后获取宽、高
System.Drawing.Point topLeft = new Point(0, 0);
System.Drawing.Point bottomRight = new Point(5, 10); 
System.Drawing.Rectangle rect = new System.Drawing.Rectangle(topLeft.X, topLeft.Y, bottomRight.X - topLeft.X, bottomRight.Y - topLeft.Y);
int rect_width = rect.Width;
int rect_height = rect.Height;

二、计算两点的距离

使用勾股定理计算两个坐标点的距离(在这个特定情况下是对角线长度)。

使用如下计算方式:

(1)勾股定理

在直角三角形中,直角边的平方和等于斜边(对角线)的平方:

45a2622db38c45a1b4f209f6dfcdfbdc.png

其中:

  • c 是斜边(这里表示从左上角到右下角的对角线长度),
  • a 和 b 分别是两条直角边(在这里,a 可以理解为水平方向上的差值 bottomRight.X - topLeft.X,而 b 为垂直方向上的差值 bottomRight.Y - topLeft.Y)。

(2)Math.Pow函数

原型:

public static double Pow (double x, double y);

解释:Math.Pow(底数x,指数y) , 函数用来求 x 的 y 次幂(次方)

(3)示例代码

// 定义矩形左上角和右下角的坐标
Point topLeft = new Point(0, 0);
Point bottomRight = new Point(5, 10); // 计算两点之间的距离(即对角线长度)
double distance = Math.Sqrt(Math.Pow(bottomRight.X - topLeft.X, 2) + Math.Pow(bottomRight.Y - topLeft.Y, 2));
Console.WriteLine("两点之间的距离 (对角线长度): " + distance);

 

 

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

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

相关文章

Vue中有哪些优化性能的方法?

Vue是一款流行的JavaScript框架,用于构建交互性强的Web应用程序。在前端开发中,性能优化是一个至关重要的方面,尤其是当应用程序规模变大时。Vue提供了许多优化性能的方法,可以帮助开发人员提升应用程序的性能,从而提升…

初学者如何使用QT新建一个包含UI界面的C++项目

文章目录 一、下载并安装QT51、下载安装包2、注册/登录账号3、安装qt6 二、新建QT Widget项目1、新建项目并且运行2、易错点:可能运行成功得到UI界面但是会报错(原因是使用了中文路径) 一、下载并安装QT5 1、下载安装包 进入下载网址 Windo…

链表习题-力扣oj (附加思路版)

LCR 140. 训练计划 IIhttps://leetcode.cn/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof/ 给定一个头节点为 head 的链表用于记录一系列核心肌群训练项目编号,请查找并返回倒数第 cnt 个训练项目编号。 思路:双指针,快指针先走cnt…

RabbitMQ队列

RabbitMQ队列 1、死信的概念 ​ 先从概念解释上搞清楚这个定义,死信,顾名思义就是无法被消费的消息,字面意思可以这样理解,一般来说,producer将消息投递到broker或者直接到queue里了,consumer 从 queue取出消息进行消…

基于redis实现用户登陆

因为session有数据共享问题,不同tomcat服务器中的session不能共享,之后负载均衡就无法实现。所以我们用redis代替session。redis可以被多个tomcat服务器共享,redis基于内存。 之前的session可以看做登陆凭证,本次登陆凭证由sessi…

C语言指针总结(完结篇)

前言 这篇博客终于迎来了指针博客的大结局,本篇主要分析习题来回顾之前的指针总结的知识点,这篇博客的题有点绕,哈哈算是经典了 个人主页:小张同学zkf 若有问题 评论区见 感兴趣就关注一下吧 目录 1. sizeof和strlen的对比 1.1 …

TikTok矩阵获客软件的核心源代码是什么?

随着互联网的不断发展,社交媒体已成为企业获客的重要渠道之一,在众多的社交媒体平台中,TikTok凭借其庞大的用户群体和活跃的社交氛围,成为了众多企业竞相争夺的营销高地。 在这样的背景下,TikTok矩阵获客软件应运而生…

Linux Ubuntu部署SVN服务端结合内网穿透实现客户端公网访问

文章目录 前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改authz文件 3. 启动svn服务4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射本地端口 5. 测试公网访问6. 配置固定公网TCP端口地址6.1 保留一个固定的公网TCP端口地址6…

RISC-V架构学习资料整理

1、韦东山——D1S哪吒开发板的裸机代码仓库 https://github.com/bigmagic123/d1-nezha-baremeta 2、melis系统移植到D1S https://blog.51cto.com/u_13800193/6268813 3、韦东山的gitee仓库 https://gitee.com/weidongshan 4、D1S编译工具链下载 https://github.com/Tina-Linux/…

Tomcat安装步骤及详细配置教程(2022最新版)

网上的tomcat安装及配置教程一大堆,但是好多都过时了,根本不适用现在的版本,今天凯歌整理一篇Tomcat安装步骤及详细配置教程,2022年最新版~ Tomcat安装及配置教程主要分为四步: 步骤一:首先确认自己是否已…

学习Java的第一天

一、Java简介 Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 面向对象程序设计语言和 Java 平台的总称。由 James Gosling和同事们共同研发,并在 1995 年正式推出。 后来 Sun 公司被 Oracle (甲骨文)公司收购,Jav…

nvm安装和使用保姆级教程(详细)

一、 nvm是什么 : nvm全英文也叫node.js version management,是一个nodejs的版本管理工具。nvm和npm都是node.js版本管理工具,为了解决node.js各种版本存在不兼容现象可以通过它可以安装和切换不同版本的node.js。 二、卸载之前安装的node: …

java核心面试题汇总

文章目录 1. Java1.1. TCP三次握手/四次挥手1.2 HashMap底层原理1.3 Java常见IO模型1.4 线程与线程池工作原理1.5 讲一讲ThreadLocal、Synchronized、volatile底层原理1.6 了解AQS底层原理吗 2. MySQL2.1 MySQL索引为何不采用红黑树,而选择B树2.2 MySQL索引为何不采…

python基础第二天

世界杯小组赛成绩 注意: 1.循环 1.1while 1.2for 1.3 range 1.4 while else while 循环正常执行完才能执行else语句

【学习】torch.nn.CrossEntropyLoss交叉熵损失函数

交叉熵损失函数torch.nn.CrossEntropyLoss 交叉熵主要是用来判定实际的输出与期望的输出的接近程度,为什么这么说呢,举个例子: 在做分类的训练的时候,如果一个样本属于第K类,那么这个类别所对应的输出节点的输出值应…

计讯物联环保数采仪TS910全力打造绿色宜居生态环境

植树造林自古以来就有调节气候、涵养水源、减轻大气污染的益处。如今,随着科技的迅速发展,我们除了能够以植树造林来改善生活环境,保持生态系统,还能通过物联网、大数据、云计算、边缘计算、人工智能等新一代信息技术集成应用于监…

使用 Docker 部署 Fiora 在线聊天室平台

一、Fiora 介绍 Fiora 简介 Fiora 是一款开源免费的在线聊天系统。 GitHub:https://github.com/yinxin630/fiora Fiora 功能 注册账号并登录,可以长久保存你的数据加入现有群组或者创建自己的群组,来和大家交流和任意人私聊,并添…

探索SRM软件:了解SRM在企业中的作用

作为供应商,对于SRM软件并不陌生,但对于刚刚进入采购行业的新手来说,就可能不太了解这个软件的作用了。现在让我们来科普一下:通常,我们将SRM称为供应商关系管理,其全称为Supplier Relationship Management…

让照片说话唱歌的软件,盘点这3款!

在数字时代,我们总是渴望找到新的方式来表达自我、分享生活。近年来,随着人工智能和图像处理技术的飞速发展,一种新型的软件应运而生,它们能够让照片“说话”甚至“唱歌”,给我们的生活带来了无限乐趣和创意空间。那么…

如何在Linux系统Docker本地部署SimpleMindMap并实现远程访问?

文章目录 1. Docker一键部署思维导图2. 本地访问测试3. Linux安装Cpolar4. 配置公网地址5. 远程访问思维导图6. 固定Cpolar公网地址7. 固定地址访问 SimpleMindMap 是一个可私有部署的web思维导图工具。它提供了丰富的功能和特性,包含插件化架构、多种结构类型&…