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

Qt5.14.2 多边形与多边形求交集

利用Qt5.14.2 中自带的QPolygonF类的intersected()函数求两个多边形的交集多边形。

inline QList<QPolygonF> getPolygonIntersectedWithPolygon(QPolygonF polygon1, QPolygonF polygon2){QList<QPolygonF> outval;//此处求出的intersection可能包含多个子区域,需要进一步处理QPolygonF intersection = polygon1.intersected(polygon2);//交集点数量int pCount = intersection.count();if(pCount == 0) return outval;  //如果没有交集,返回一个空列表QVector<QPointF> plst;  //子区域点列表QPointF curP = (QPointF)intersection.at(0); //首点plst.append(curP);//搜索小块分区for(int j = 1; j < pCount; j++){QPointF tp = (QPointF)intersection.at(j);if(curP == tp){//首尾点一致,则说明一个子区域搜索完毕plst.append(tp);//有时会出现第二个点与倒数第2个点相同,此时可以去掉首尾点while(plst.count() >= 4&& (plst[1] == plst[plst.count() - 2])){plst.removeFirst();plst.removeLast();qDebug() << "去掉多余点";}//创建当前子区域的多边形QPolygonF _poly(plst);if(plst.count() > 2){outval.append(_poly);}plst.clear();   //清空子区域列表if(j < pCount - 1){//将下一个点设置为首点curP = (QPointF)intersection.at(j + 1);plst.append(curP);  //将下一个点加入列表j++;}continue;}else{plst.append(tp);    //当前点加入列表}}return outval;  //返回交集多边形列表}

欢迎交流学习!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • GPT4的代码生成能力能不能取代一个月薪5000水平的码农?
  • 大象机械臂myCobot 280 JN 2023和D435i相关环境配置
  • Spring Boot 中的 starter 是什么
  • 大脑可视化:多种方式实现fMRI的ROI的绘图
  • C语言 | Leetcode C语言题解之第363题矩形区域不超过K的最大数值和
  • 如何解决git@github.com: Permission denied (publickey)异常
  • k8s Pod生命周期详解
  • 動態IP設置反向代理教程
  • 【playwright篇】 Locator对象的方法详解
  • 鸿蒙OS promptAction的使用
  • 大模型重塑就医体验:医联MedGPT助力健康中国建设
  • 「漏洞复现」同享人力资源管理系统-TXEHR V15 SFZService.asmx SQL注入漏洞
  • verilog实现STFT
  • 【功能自动化】WebTours实现订票流程并设置检查点
  • 小程序学习day11-生命周期函数、组件所在页面的生命周期、自定义组件的插槽、自定义组件的父子通信
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 2019.2.20 c++ 知识梳理
  • Cookie 在前端中的实践
  • Git学习与使用心得(1)—— 初始化
  • Golang-长连接-状态推送
  • Gradle 5.0 正式版发布
  • HTTP中的ETag在移动客户端的应用
  • Java多态
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • MobX
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • 彻底搞懂浏览器Event-loop
  • 创建一种深思熟虑的文化
  • 复习Javascript专题(四):js中的深浅拷贝
  • 关于extract.autodesk.io的一些说明
  • 计算机在识别图像时“看到”了什么?
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 浅谈web中前端模板引擎的使用
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 用Python写一份独特的元宵节祝福
  • 怎样选择前端框架
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • # .NET Framework中使用命名管道进行进程间通信
  • #define,static,const,三种常量的区别
  • #宝哥教你#查看jquery绑定的事件函数
  • (+4)2.2UML建模图
  • (16)Reactor的测试——响应式Spring的道法术器
  • (2015)JS ES6 必知的十个 特性
  • (动态规划)5. 最长回文子串 java解决
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (理论篇)httpmoudle和httphandler一览
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (新)网络工程师考点串讲与真题详解
  • (一)、软硬件全开源智能手表,与手机互联,标配多表盘,功能丰富(ZSWatch-Zephyr)
  • (已解决)Bootstrap精美弹出框模态框modal,实现js向modal传递数据
  • (转)【Hibernate总结系列】使用举例
  • .net 7 上传文件踩坑
  • .NET CF命令行调试器MDbg入门(一)
  • .Net Core和.Net Standard直观理解