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

使用boost::geometry::union_ 合并边界(内、外):方案二

使用boost::geometry::union_ 合并边界(内、外):方案二


typedef boost::geometry::model::d2::point_xy<double> boost_point;
typedef boost::geometry::model::polygon<boost_point> boost_Polygon;struct Point
{float x;float y;Point(float _x,float _y){x = _x;y = _y;}Point(const boost_point & pt){x = pt.x();y = pt.y();}operator boost_point(){return boost_point(x, y);}
};bool TestClientTrafficEvent::TestBorderCombine()
{//str_points_of_cur_frame_data = "POLYGON((1.500000 1.500000,1.500000 2.500000,2.500000 2.500000,2.500000 1.500000,1.500000 1.500000))".std::vector<Point> lhs;{Point lhs_p1(1.5, 1.5); Point lhs_p2(1.5,2.5); //remainPoint lhs_p3(2.5, 2.5); //remainPoint lhs_p4(2.5, 1.5);Point lhs_p5(1.5, 1.5);lhs.push_back(lhs_p1);lhs.push_back(lhs_p2);lhs.push_back(lhs_p3);lhs.push_back(lhs_p4);lhs.push_back(lhs_p5);}//str_points_of_compared_frame_data = "POLYGON((1.000000 1.000000,1.000000 2.000000,2.000000 2.000000,2.000000 1.000000,1.000000 1.000000))";std::vector<Point> rhs;{Point rhs_p1(1.0, 1.0); Point rhs_p2(1.0, 2.0);Point rhs_p3(2.0, 2.0);Point rhs_p4(2.0, 1.0);Point rhs_p5(1.0, 1.0);    }boost_Polygon lhs_lt, rhs_lt;for (auto & pt : lhs){boost::geometry::append(lhs_lt, (boost_point)pt);}for (auto & pt : rhs){boost::geometry::append(rhs_lt, (boost_point)pt);}//进行并集计算std::vector<boost_Polygon> r;boost::geometry::union_(lhs_lt, rhs_lt, r);//通过验证:与传入的顺序无关,均返回相同的结果。std::vector<Point> vctr_combined ;if (!r.empty())//有结果返回{for (auto & pt : r[0].outer()){vctr_combined.push_back(pt);}}    std::cout << "vctr_combined.size()  = " << vctr_combined.size() << std::endl;for(auto iter : vctr_combined){std::cout << "iter.x  = " << iter.x << ", iter.y  = " << iter.y << std::endl;}return true;}
  • P1、P5 为新增自动生成的交叉点

  • P1为首位重合点

  • P1 ~ P8 ~ P8 为顺时针顺序

在这里插入图片描述

相关文章:

使用boost::geometry::union_ 合并边界(内、外):方案二

使用boost::geometry::union_ 合并边界&#xff08;内、外&#xff09;&#xff1a;方案二 typedef boost::geometry::model::d2::point_xy<double> boost_point; typedef boost::geometry::model::polygon<boost_point> boost_Polygon;struct Point {float x;floa…...

ICCV 2023 | 小鹏汽车纽约石溪:局部上下文感知主动域自适应LADA

摘要 主动域自适应&#xff08;ADA&#xff09;通过查询少量选定的目标域样本的标签&#xff0c;以帮助模型从源域迁移到目标域。查询数据的局部上下文信息非常重要&#xff0c;特别是在域间差异较大的情况下&#xff0c;然而现有的ADA方法尚未充分探索这一点。在本文中&#…...

stable diffusion实践操作-黑白稿线稿上色

系列文章目录 本文专门开一节【黑白稿线稿上色】写相关的内容&#xff0c;在看之前&#xff0c;可以同步关注&#xff1a; stable diffusion实践操作 文章目录 系列文章目录前言一、操作步骤1. 找到黑白线稿图 总结 前言 本章主要介绍黑白稿线稿上色&#xff0c;这是通过Cont…...

Python学习教程:集合操作的详细教程

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 Python中有两种可以遍历的容器类型&#xff1a; 序列类型&#xff1a;包含字符串、列表、元祖 序列类型是线性表&#xff0c;就像数组一样&#xff0c;是在内存中开辟一块连续空间&#xff0c;连续存储的&#xff0c; 那么查找…...

球球的排列

题目传送门 引 计数DP,好像特别经典&#xff0c;有两种做法&#xff0c;我只会 O ( n 3 ) O(n^3) O(n3),有 O ( n 2 ) O(n^2) O(n2)的 解法 首先&#xff0c; 若 x y p 2 且 x z q 2 , 则 y z ( p q x ) 2 若xyp^2且xzq^2,则yz(\frac{pq}{x} )^2 若xyp2且xzq2,则yz(xpq…...

1783_CMD启动MATLAB同时执行一个脚本

全部学习汇总&#xff1a; GitHub - GreyZhang/g_matlab: MATLAB once used to be my daily tool. After many years when I go back and read my old learning notes I felt maybe I still need it in the future. So, start this repo to keep some of my old learning notes…...

C语言中内存分配的几种方式

目录 C语言中内存分配的几种方式静态内存分配栈内存分配堆内存分配内存映射文件 C语言中内存分配的几种方式 静态内存分配 静态内存分配是在程序编译时分配内存&#xff0c;通常用于全局变量和静态变量。这些变量的内存空间在程序的整个运行期间都是存在的。 栈内存分配 栈内存…...

组相联cache如何快速实现cache line eviction并使用PMU events验证

如何快速实现cache line eviction 一&#xff0c;什么是cache hit、miss、linefill、evict &#xff1f;1.1 如果要程序员分别制造出cache hit、miss、linefill、evict这四种场景&#xff0c;该怎么做&#xff1f; 二&#xff0c;实现cache line eviction的方法1.1 直接填充法3…...

【Stable Diffusion安装】支持python3.11 window版

前言 主要的安装步骤是参考B站播放量第一的视频&#xff0c;但是那位阿婆主应该是没有编程经验&#xff0c;只强调使用3.10&#xff0c;而python最新版本是3.11。 理论上来说&#xff0c;只是一个小版本的不同&#xff0c;应该是可以安装成功了。自己摸索了下&#xff0c;挺费…...

Anycloud37D平台移植wirelesstools

0. 环境准备 下载 &#xff1a;https://www.linuxfromscratch.org/blfs/view/svn/basicnet/wireless_tools.html 1. 交叉编译wireless_tools tar xzf wireless_tools.29.tar.gz cd wireless_tools.29/打开Makefile&#xff0c;修改配置&#xff1a; ## Compiler to use (mo…...

海康机器人工业相机 Win10+Qt+Cmake 开发环境搭建

文章目录 一. Qt搭建海康机器人工业相机开发环境 一. Qt搭建海康机器人工业相机开发环境 参考这个链接安装好MVS客户端 Qt新建一个c项目 cmakeList中添加海康机器人的库&#xff0c;如下&#xff1a; cmake_minimum_required(VERSION 3.5)project(HIKRobotCameraTest LANG…...

使用MDK5的一些偏僻使用方法和谋个功能的作用

程序下载后无法运行 需要勾选如下库&#xff0c;是优化后的库&#xff1b; MicroLib和标准C库之间的主要区别是: 1、MicroLib是专为深度嵌入式应用程序而设计的。 2、MicroLib经过优化&#xff0c;比使用ARM标准库使用更少的代码和数据内存。 3、MicroLib被设计成在没有操作…...

【实战】十一、看板页面及任务组页面开发(六) —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(二十八)

文章目录 一、项目起航&#xff1a;项目初始化与配置二、React 与 Hook 应用&#xff1a;实现项目列表三、TS 应用&#xff1a;JS神助攻 - 强类型四、JWT、用户认证与异步请求五、CSS 其实很简单 - 用 CSS-in-JS 添加样式六、用户体验优化 - 加载中和错误状态处理七、Hook&…...

在 Amazon 搭建无代码可视化的数据分析和建模平台

现代企业常常会有利用数据分析和机器学习帮助解决业务痛点的需求。如制造业中&#xff0c;利用设备采集上来的数据做预测性维护&#xff0c;质量控制&#xff1b;在零售业中&#xff0c;利用客户端端采集的数据做渠道转化率分析&#xff0c;个性化推荐等。 亚马逊云科技开发者…...

Pinely Round 2 (Div. 1 + Div. 2) G. Swaps(组合计数)

题目 给定一个长度为n(n<1e6)的序列&#xff0c;第i个数ai(1<ai<n)&#xff0c; 操作&#xff1a;你可以将当前i位置的数和a[i]位置的数交换 交换可以操作任意次&#xff0c;求所有本质不同的数组的数量&#xff0c;答案对1e97取模 思路来源 力扣群 潼神 心得 感…...

elasticSearch+kibana+logstash+filebeat集群改成https认证

文章目录 一、生成相关证书二、配置elasticSearh三、配置kibana四、配置logstash五、配置filebeat六、连接https es的java api 一、生成相关证书 ps&#xff1a;主节点操作 切换用户&#xff1a;su es 进入目录&#xff1a;cd /home/es/elasticsearch-7.6.2 创建文件&#x…...

GPT带我学-设计模式-迭代器模式

1 什么是迭代器设计模式&#xff1f; 迭代器设计模式是一种行为型设计模式&#xff0c;用于提供一种统一的方式来遍历一个集合对象中的元素&#xff0c;而不需要暴露该对象的内部结构。它将集合对象的遍历操作与集合对象本身分离开来&#xff0c;使得遍历操作可以独立于集合对…...

数学建模--层次分析法(AHP)的Python实现

目录 1.算法流程简介 2.算法核心代码 3.算法效果展示 1.算法流程简介 """ AHP:层次分析法,层次分析法还是比较偏向于主观的判断的,所以在建模的时候尽可能不要去使用层次分析法 不过在某些创新的评价方法上,也是能够运用层次分析使得评价变得全面一些,有可…...

机器学习笔记之最优化理论与方法(三)凸集的简单认识(下)

机器学习笔记之最优化理论与方法——凸集的简单认识[下] 引言回顾&#xff1a;基本定义——凸集关于保持集合凸性的运算仿射变换 凸集基本性质&#xff1a;投影定理点与凸集的分离支撑超平面定理 引言 继续凸集的简单认识(上)进行介绍&#xff0c;本节将介绍凸集的基本性质以及…...

Apipost:API文档、调试、Mock与测试的一体化协作平台

随着数字化转型的加速&#xff0c;API&#xff08;应用程序接口&#xff09;已经成为企业间沟通和数据交换的关键。而在API开发和管理过程中&#xff0c;API文档、调试、Mock和测试的协作显得尤为重要。Apipost正是这样一款一体化协作平台&#xff0c;旨在解决这些问题&#xf…...

解密Ren‘Py游戏资源:掌握rpatool的5个核心应用场景

解密RenPy游戏资源&#xff1a;掌握rpatool的5个核心应用场景 【免费下载链接】rpatool (migrated to https://codeberg.org/shiz/rpatool) A tool to work with RenPy archives. 项目地址: https://gitcode.com/gh_mirrors/rp/rpatool 你是否曾经好奇过RenPy视觉小说游…...

nanoMODBUS:嵌入式系统轻量级Modbus通信库的5大创新与实战指南

nanoMODBUS&#xff1a;嵌入式系统轻量级Modbus通信库的5大创新与实战指南 【免费下载链接】nanoMODBUS A compact MODBUS RTU/TCP C library for embedded/microcontrollers 项目地址: https://gitcode.com/gh_mirrors/na/nanoMODBUS nanoMODBUS是一个专为嵌入式系统设…...

Windows 11 LTSC系统恢复微软商店:3分钟快速安装完整指南

Windows 11 LTSC系统恢复微软商店&#xff1a;3分钟快速安装完整指南 【免费下载链接】LTSC-Add-MicrosoftStore Add Windows Store to Windows 11 24H2 LTSC 项目地址: https://gitcode.com/gh_mirrors/ltscad/LTSC-Add-MicrosoftStore 你是否在使用Windows 11 LTSC版本…...

Asp.net Mvc教学: LINQ相关的几大分类的使用率-由Deepseek产生

基于当前&#xff08;2026年&#xff09;.NET开发生态的实际情况&#xff0c;这五大方法的使用率呈现出非常明显的两极分化趋势。 简单直接地回答&#xff1a;使用率高的只有两个&#xff0c;其他三个使用率极低&#xff0c;属于特定场景工具。 以下是具体的排名与解析&#xf…...

如何快速配置便携版:零基础制作可移植AI图像处理工具waifu2x-caffe

如何快速配置便携版&#xff1a;零基础制作可移植AI图像处理工具waifu2x-caffe 【免费下载链接】waifu2x-caffe waifu2xのCaffe版 项目地址: https://gitcode.com/gh_mirrors/wa/waifu2x-caffe waifu2x-caffe是一款基于Caffe深度学习框架的AI图像放大和降噪工具&#xf…...

告别纯视觉:如何将DEM高程数据喂给你的CNN模型提升滑坡识别准确率?

异构数据融合实战&#xff1a;当卫星影像遇见DEM高程的深度学习革命 滑坡识别一直是地质灾害监测领域的痛点问题。传统纯视觉方法依赖光学卫星影像&#xff08;RGB&#xff09;分析&#xff0c;但复杂地形条件下的误报率居高不下——直到数字高程模型&#xff08;DEM&#xff0…...

华硕笔记本性能优化终极指南:3步告别臃肿控制软件,用G-Helper重获流畅体验

华硕笔记本性能优化终极指南&#xff1a;3步告别臃肿控制软件&#xff0c;用G-Helper重获流畅体验 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar,…...

Logisim-evolution终极指南:从数字电路新手到硬件设计高手

Logisim-evolution终极指南&#xff1a;从数字电路新手到硬件设计高手 【免费下载链接】logisim-evolution Digital logic design tool and simulator 项目地址: https://gitcode.com/gh_mirrors/lo/logisim-evolution 你是否曾经对计算机内部的奥秘感到好奇&#xff1f…...

Elsevier Tracker:科研工作者必备的智能投稿状态追踪工具

Elsevier Tracker&#xff1a;科研工作者必备的智能投稿状态追踪工具 【免费下载链接】Elsevier-Tracker 项目地址: https://gitcode.com/gh_mirrors/el/Elsevier-Tracker 作为科研工作者&#xff0c;您是否曾因频繁登录Elsevier投稿系统查看审稿进度而感到疲惫&#x…...

基于Remix与React构建隐私优先的订阅费用追踪器Subs

1. 项目概述&#xff1a;一个纯粹、高效的订阅费用追踪器在数字订阅服务泛滥的今天&#xff0c;你是否也常常感到困惑&#xff1a;每个月到底有多少笔自动扣款&#xff1f;Netflix、Spotify、各种云服务、会员费……这些零散的费用加起来&#xff0c;一年可能是一笔不小的开销。…...