C# 在矩形内获取一个指定大小的矩形(两个矩形的中心点是重合的)

2024-01-25 22:20

本文主要是介绍C# 在矩形内获取一个指定大小的矩形(两个矩形的中心点是重合的),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

C# 在矩形内获取一个指定大小的矩形(两个矩形的中心点是重合的)

示例1:

using System.Drawing;public class RectangleUtils
{public static Rectangle GetInnerRectangle(Rectangle outerRectangle, Size innerSize){// 计算内部矩形的左上角坐标int left = outerRectangle.Left + (outerRectangle.Width - innerSize.Width) / 2;int top = outerRectangle.Top + (outerRectangle.Height - innerSize.Height) / 2;// 返回内部矩形return new Rectangle(left, top, innerSize.Width, innerSize.Height);}public static void Main(){// 定义外部矩形Rectangle outerRectangle = new Rectangle(100, 100, 400, 300);// 定义内部矩形的大小Size innerSize = new Size(200, 150);// 获取内部矩形Rectangle innerRectangle = GetInnerRectangle(outerRectangle, innerSize);// 输出内部矩形的坐标和大小Console.WriteLine("内部矩形的坐标:({0}, {1})", innerRectangle.Left, innerRectangle.Top);Console.WriteLine("内部矩形的大小:{0}x{1}", innerRectangle.Width, innerRectangle.Height);}
}

在上面的代码中,GetInnerRectangle 方法接受一个外部矩形和一个内部矩形的大小作为参数。它计算内部矩形的左上角坐标,并返回一个新的 Rectangle 对象。

 

在 Main 方法中,我们定义了一个外部矩形和一个内部矩形的大小。然后,调用 GetInnerRectangle 方法获取内部矩形,并输出其坐标和大小。

 

请注意,上述代码假设内部矩形的大小不会超出外部矩形的范围。如果内部矩形的大小超过了外部矩形的大小,需要进行适当的边界检查和处理。

 

示例2:

 

using System.Drawing; // 如果是Windows Forms或GDI+// 假设已有一个大的Rectangle对象rectParent和你想要创建的小矩形尺寸sizeChild
Rectangle rectParent;
Size sizeChild;// 计算小矩形中心点在大矩形内的坐标,保证两者中心点重合
Point centerOfBothRects = new Point(rectParent.X + rectParent.Width / 2,rectParent.Y + rectParent.Height / 2
);// 根据中心点坐标和小矩形尺寸创建新的小矩形
Rectangle rectChild = new Rectangle(centerOfBothRects.X - sizeChild.Width / 2,centerOfBothRects.Y - sizeChild.Height / 2,sizeChild.Width,sizeChild.Height
);// 检查小矩形是否完全在大矩形内(由于已经确保中心点重合,通常不需要此步骤)
if (rectParent.Contains(rectChild))
{// 小矩形成功在大矩形内生成并且中心点与大矩形中心点重合
}
else
{// 在这种情况下理论上不会发生,除非sizeChild超出rectParent范围// 可能需要调整大小以适应大矩形
}

这段代码首先计算了大矩形的中心点坐标,并假设这个坐标就是小矩形的中心点。然后根据小矩形的尺寸从中心点向两边扩展来创建小矩形,确保两个矩形的中心点重合。如果事先知道小矩形尺寸始终小于等于大矩形尺寸,则无需检查rectParent.Contains(rectChild)

 

这篇关于C# 在矩形内获取一个指定大小的矩形(两个矩形的中心点是重合的)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/644793

相关文章

C#中Guid类使用小结

《C#中Guid类使用小结》本文主要介绍了C#中Guid类用于生成和操作128位的唯一标识符,用于数据库主键及分布式系统,支持通过NewGuid、Parse等方法生成,感兴趣的可以了解一下... 目录前言一、什么是 Guid二、生成 Guid1. 使用 Guid.NewGuid() 方法2. 从字符串创建

Python使用OpenCV实现获取视频时长的小工具

《Python使用OpenCV实现获取视频时长的小工具》在处理视频数据时,获取视频的时长是一项常见且基础的需求,本文将详细介绍如何使用Python和OpenCV获取视频时长,并对每一行代码进行深入解析... 目录一、代码实现二、代码解析1. 导入 OpenCV 库2. 定义获取视频时长的函数3. 打开视频文

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin

Golang如何对cron进行二次封装实现指定时间执行定时任务

《Golang如何对cron进行二次封装实现指定时间执行定时任务》:本文主要介绍Golang如何对cron进行二次封装实现指定时间执行定时任务问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录背景cron库下载代码示例【1】结构体定义【2】定时任务开启【3】使用示例【4】控制台输出总结背景

MySQL 获取字符串长度及注意事项

《MySQL获取字符串长度及注意事项》本文通过实例代码给大家介绍MySQL获取字符串长度及注意事项,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 获取字符串长度详解 核心长度函数对比⚠️ 六大关键注意事项1. 字符编码决定字节长度2

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

python3如何找到字典的下标index、获取list中指定元素的位置索引

《python3如何找到字典的下标index、获取list中指定元素的位置索引》:本文主要介绍python3如何找到字典的下标index、获取list中指定元素的位置索引问题,具有很好的参考价值,... 目录enumerate()找到字典的下标 index获取list中指定元素的位置索引总结enumerat

SpringMVC高效获取JavaBean对象指南

《SpringMVC高效获取JavaBean对象指南》SpringMVC通过数据绑定自动将请求参数映射到JavaBean,支持表单、URL及JSON数据,需用@ModelAttribute、@Requ... 目录Spring MVC 获取 JavaBean 对象指南核心机制:数据绑定实现步骤1. 定义 Ja

Java实现删除文件中的指定内容

《Java实现删除文件中的指定内容》在日常开发中,经常需要对文本文件进行批量处理,其中,删除文件中指定内容是最常见的需求之一,下面我们就来看看如何使用java实现删除文件中的指定内容吧... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细介绍3.1 Ja

C++中RAII资源获取即初始化

《C++中RAII资源获取即初始化》RAII通过构造/析构自动管理资源生命周期,确保安全释放,本文就来介绍一下C++中的RAII技术及其应用,具有一定的参考价值,感兴趣的可以了解一下... 目录一、核心原理与机制二、标准库中的RAII实现三、自定义RAII类设计原则四、常见应用场景1. 内存管理2. 文件操