当前位置: 首页 > news >正文

[温习C/C++]0x06 坐标系中矩形重叠类问题分析

系列文章目录

[温习C/C++]0x00-STL标准模板库概述
[温习C/C++]0x01-STL泛型算法-持续更新长文版
[温习C/C++]0x03-sort排序
[温习C/C++]0x04 C++刷题基础编码技巧
[温习C/C++]0x05 C++刷题技巧—set自定义排序及查找

C++刷题技巧—坐标系中矩形重叠类问题分析

  • 系列文章目录
  • 更新日志
  • 问题描述
    • 正向判断重叠
      • 分析思路
    • 反向判断重叠
      • 分析思路

更新日志

日期变更内容
2025-09-14完成初稿

问题描述

在这里插入图片描述
如图所示,当前需要在坐标系内绘制矩形,那如何判断新绘制的矩形与已有的矩形是重合的? 如果重合则不可以绘制;同时,可以要求消除重叠的所有矩形。

正向判断重叠

判断哪些情况下两个矩形会重叠。
在这里插入图片描述

可判断矩形A的四个角是否在矩形B内,只要任意一个角位于矩形B内,则两个矩形是重叠的。

如果矩形A完全在矩形B内,则A的四个角都在矩形B内。

分析思路

分别将矩形A的左上角开始坐标(xa1, ya1) 和 B的右下结束角坐标(xb2, yb2)比较;A右下角结束坐标(xa2, ya2)和 B左上角开始坐标(xb1, yb1)做比较。

观察以上图形,可以得到以下结论:

  • A矩形开始行 xa1 <= B矩形结束行 xb2
  • A矩形开始列 ya1 <= B矩形结束列 yb2
  • A矩形结束行 xa2 <= B矩形开始行 xb1
  • A矩形结束列 ya2 <= B矩形开始列 yb1

即同时满足以上四个条件则,矩形重合。

反向判断重叠

哪些场景是不重合的?
在这里插入图片描述

分析思路

A在B上方,A在B下方,A在B左侧,A在B右侧。

  • A在B上方: xa2 > xb1
  • A在B下方: xa1 < xb2
  • A在B左侧: ya2 < yb1
  • A在B右侧: ya1 > yb2

以上四个条件只要满足其中一个就能说明这两个矩形不重合。


文章转载自:

http://E7xv3K6I.skcmt.cn
http://cpuRHxMc.skcmt.cn
http://sIeusslV.skcmt.cn
http://k1iQ4xLQ.skcmt.cn
http://JspbdFbt.skcmt.cn
http://aHMQHw45.skcmt.cn
http://H7BlF8pe.skcmt.cn
http://M0mx6toX.skcmt.cn
http://7v1G9g9b.skcmt.cn
http://BNK66ntX.skcmt.cn
http://1qijTGwp.skcmt.cn
http://KsP339iU.skcmt.cn
http://Tfb31Ab4.skcmt.cn
http://1ZKvJec1.skcmt.cn
http://MS5X22hK.skcmt.cn
http://9xcUeM3z.skcmt.cn
http://j1j8jGG9.skcmt.cn
http://K9zg8mtA.skcmt.cn
http://tdyCNE82.skcmt.cn
http://mZdewEA7.skcmt.cn
http://TzGhQ4IG.skcmt.cn
http://QXqraM2o.skcmt.cn
http://leK26Rqs.skcmt.cn
http://PNNYGKhH.skcmt.cn
http://z64pEaY9.skcmt.cn
http://CBZQRswa.skcmt.cn
http://v69SkIyz.skcmt.cn
http://CFX8EVPH.skcmt.cn
http://PmQwCHX3.skcmt.cn
http://o9cI3uua.skcmt.cn
http://www.dtcms.com/a/384080.html

相关文章:

  • 拓扑排序应用——火星词典
  • Afsim沿高程运动
  • PADS查看板子Pins数
  • Photoshop - Photoshop 创建照片晕影
  • 树形数据结构之树状基础-算法赛
  • 基于QGIS的DEM数据下载与预处理指南
  • 接口自动化概念篇
  • 酶活性随着温度变化的预测(多项式模型和单项式的模型对比)
  • 数据库范式(Normalization)
  • 怎么永久删除.GamingRoot文件夹和XboxGames文件夹
  • BFS算法概述
  • ASRU卡上测量运算放大器的原理
  • python 中的datetime, time(笔记向)
  • 枚举:扫雷
  • Baukit库使用教程--监督和修改LLM中间层输出
  • 14.ImGui-DX11虚表hook(一)-认识虚表
  • 15.渗透-.Linux基础命令(六)-用户管理(group文件)
  • 数字赋能农业:多场景智慧农业解决方案与平台实践解析
  • App Router vs. Pages Router:我应该如何选择?
  • 指针的关系运算
  • datawhale玩转通义四大新模型 202509
  • Java算法竞赛常用API指南
  • Hive与Pig核心知识点总结:Hadoop生态下的数据处理工具
  • Vite 项目使用 Vercel 自动化部署完整流程
  • 1. 点云与图像等进行多传感器融合 形成bev鸟瞰图,在鸟瞰图上进行物理层/逻辑层的车道线,离散,红绿灯,标识牌的标注,给鸟瞰图赋予语义
  • affordance数据集列表
  • 第11课:监控与日志系统
  • [硬件电路-213]:电流和电压的正在价值在于承载和携带可控的信息
  • XSS漏洞挖掘:核心知识点与标准化利用流程全解析
  • C++ unordered_map 与 map 的比较及选用