清华计算几何--凸Polygon的相交问题

news2025/1/13 17:29:43

凸Polygon和相交定义

本节只讨论凸Polygon的问题,不涉及凹Polygon.

相交包含了边相交和完全包含。

凸Polygon相交的两个问题

Detection(检测)

判断两个凸Polygon是否相交,至于相交部分是什么不关心.

Construction(构造)

求出两个凸Polygon具体相交部分(包含了检测是否相交)  

凸Polygon 相交检测(Detection)

dobkin and kirkpatrick's algorithm 算法

Monotone Partitioning(单调划分)

任意一个多边形都可以分解为两条多边形链

单调划分链下判断两个Polygon是否相交的条件描述 

Decrease-And-Conquer

总体上利用BinarySearch的思路对构成多边形的两条划分链求解.

1. 如果两条划分链最大边数 < 2, 则直接求两条划分链是否相交

2. 不满足1以后则求出两条划分链的中间边(median edge)-ep和eq

根据ep和eq的情况分情况(很多情况,下面举例经典情况)讨论结果:

[1]相交


[2]进一步递归求解

算法复杂度

本质上是BinarySeach,遵循O(logn). 涉及到两个多边形,假设边数量分别为N和M. 算法复杂度在O(log(N + M))

凸Polygon 相交Construction(构造)

EdgeChasing边追赶算法(O'Rourke's algorithm)

 算法案例流程

决定e, f边的具体迭代(追赶)策略

PlaneSweeping(平面扫描)

SweepLineStatus

观察可知任意一条直线与两个凸多变形最多四个交点,SLS不需要用到平衡二叉树来表示,是普通数组就行。

EventQueue

P和Q的最左边点是事件的开始, 由于多边形线段是相连的, 上一条线段退出意味着下一条线段开始。每次最多判断四条边相交。

算法复杂度: O(log(N + M)), 和EdgeChasing边追赶算法复杂度一样.

没有边界的凸多变形相交构造(unbounding convex plygon 相交construction)

后续有待补充

参考资料

[1]清华计算几何 P83 - P95

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux_kernel移植rootfs10

一、动态更改内核 1、low level&#xff08;静态修改&#xff09; 【1】将led_drv.c拷贝到kernel/drivers/char/目录中 【2】修改当前目录下的Makefile文件 obj-y led_drv.o #将新添加的驱动文件加入到Makefile文件中 【3】退回kernel目录&#xff0c;执行make uImage …

熬夜后补救措施

人体的肝功能问题 直接体现在体态和容颜上 伤肝 三大坏行为 熬夜后补救 *补充养b族、口、、锌、硒 加强代谢 能力 (1)另外熬夜后一定要多喝水 提升身体代谢能力 (2)谷肤甘肽清肝 肝脏排毒&#xff0c;减轻负拒 (3)水飞前含量高点 &#xff08;4)熬夜出更多油 容易长痘 需要清…

标准库标头 <filesystem> (C++17)学习之文件类型

本篇介绍filesystem文件库的文件类型API。 文件类型 is_block_file (C17) 检查给定的路径是否表示块设备 (函数) is_character_file (C17) 检查给定的路径是否表示字符设备 (函数) is_directory (C17) 检查给定的路径是否表示一个目录 (函数) is_empty (C17) 检查给定的路径是…

STM32G474之使用DAC1和DAC2测试模拟比较器

STM32G474使用DAC1和DAC2的输出作为比较器输入&#xff0c;测试模拟比较器&#xff0c;方法如下&#xff1a; PA1的附加功能为COMP1_INP&#xff0c;无需映射&#xff0c;直接将它配置为模拟功能&#xff0c;就可以使用了。 将COMP1_OUT引脚映射到PA0; 采用DAC2_OUT1输出电压给…

【大疆 SDR 图传 P1 】 功能拆解,通信功能剖析

大疆 SDR 图传 P1 拆解视频P1 SoC1、哲酷2、小米3、大疆&#xff08;文章主角&#xff09; 一、为什么说SDR技术1、sdr 软件无线电2、影视博主的测评方法3、第一个说自己SDR的还是这个老登 二、大疆的图传发展历程1、FPGA AD93632、 P1 自研1、2个DSP和一个CPU A72、音频子系统…

SpringMVC;MVC模式;Spring环境搭建;

一&#xff0c;介绍MVC模式&#xff1a; MVC模式&#xff1a; 1.M:model 模型,业务模型和数据模型. 2.C:controller 控制器 3.V:view 视图 优点: 使用控制器C把视图V和业务模型M分离&#xff0c;从而使同一个程序可以使用不同的表现形式 使用场景: 中大型项目 核心: 控制器 二…

828华为云征文 | 基于Docker与Jenkins实现自动化部署

需要了解 本文章主要讲述在 华为云Flexus X 实例上使用docker快速部署持续集成工具 Jenkins&#xff0c;通过插件来自动化CI/CD过程中的各种琐碎功能。选择合适的云服务器&#xff1a; 本文采用的是 华为云服务器 Flexus X 实例&#xff08;推荐使用&#xff09;连接方式&#…

【自动驾驶】决策规划算法 | 数学基础(三)直角坐标与自然坐标转换Ⅰ

写在前面&#xff1a; &#x1f31f; 欢迎光临 清流君 的博客小天地&#xff0c;这里是我分享技术与心得的温馨角落。&#x1f4dd; 个人主页&#xff1a;清流君_CSDN博客&#xff0c;期待与您一同探索 移动机器人 领域的无限可能。 &#x1f50d; 本文系 清流君 原创之作&…

【有啥问啥】数字孪生(Digital Twin)技术在人工智能中的应用

数字孪生技术在人工智能中的应用 在当今的数字化转型过程中&#xff0c;“数字孪生”技术逐渐成为热门话题&#xff0c;并且在各个行业中展现出巨大的潜力。作为一种新兴技术&#xff0c;数字孪生&#xff08;Digital Twin&#xff09;不仅仅是物理对象的虚拟复制品&#xff0…

MATLAB算法实战应用案例精讲-【人工智能】大数据审计(概念篇)

目录 前言 大数据审计发展历程 1.初级阶段:验证型逻辑占据主导地位 2.发展阶段:挖掘型逻辑突出重围 3.成熟阶段:基于验证和挖掘的预测型逻辑发展 算法原理 什么是大数据审计 特征 事项审计 大数据审计的方法 (一)大数据审计的一般思路 (二)大数据审计的关键技术…

【开发工具】探索IntelliJ IDEA插件——JSON Parser,让JSON处理变得轻松高效

开发过程中&#xff0c;遇到一个字符串&#xff0c;需要判断是否是JSON格式&#xff0c;或者是需要将Json字符串美化展示&#xff0c;是否还在打开百度搜JSON在线格式化(https://www.bejson.com/)&#xff0c;是否还在写个main方法将字符串转成JSON格式并输出。这篇文章&#x…

【Linux】全面讲解 Shell 变量的那些事

本文内容均来自个人笔记并重新梳理&#xff0c;如有错误欢迎指正&#xff01; 如果对您有帮助&#xff0c;烦请点赞、关注、转发、订阅专栏&#xff01; 专栏订阅入口 Linux 专栏 | Docker 专栏 | Kubernetes 专栏 往期精彩文章 【Docker】&#xff08;全网首发&#xff09;Kyl…

python中的循环结构

注意&#xff1a;range&#xff08;&#xff09;函数 累加和&#xff1a; 注意&#xff1a;if 下面如果有好几行&#xff0c;只执行一行 print必须和 for 开头相同格数 例题&#xff1a;水仙花数 注意在print语句中&#xff0c;一句好“ 。。。。。 ”后面必须有逗号然后再写变…

(八) 初入MySQL 【主从复制】

案例概况 在企业应用中&#xff0c;成熟的业务通常数据量都比较大 单台MySQL在安全性、 高可用性和高并发方面都无法满足实际的需求 &#xff0c;所以需要配置多台主从数据库服务器以实现读写分离来满足需求 一、主从复制原理 1.1、 MySQL的复制类型 基于语句的复制(STATEME…

C++11 的继续学习

1.lambda 我们如果想要给一个自定义的元素排序&#xff0c;那么应该怎么排呢 先举个例子&#xff1a; struct Goods {string _name; // 名字double _price; // 价格int _evaluate; // 评价Goods(const char* str, double price, int evaluate):_name(str), _price(price),…

等额本息等额本金

1、贷款计算器 2024年最新版房贷利率计算器_LPR利率计算器 (K JSON) 贷款计算器 2、等额本息 接下来&#xff0c;我们可以用Python编写一个函数来计算每月还款额&#xff1a; import pandas as pddef amortization_schedule(principal, annual_interest_rate, years):"…

MySQL事务执行过程

一、MySQL一个查询语句执行过程如下图&#x1f53d; MySQL客户端查询&#xff0c;经过查询缓存、解析器、查询优化器、查询执行引擎&#xff0c;通过API接口查询&#xff0c;经过存储引擎&#xff0c;获取数据返回给客户端。 二、事务执行过程如下图&#x1f53d; 1、MySQL客户…

【生日视频制作】F900xr宝马摩托车提车交车仪式AE模板修改文字软件生成器教程特效素材【AE模板】

生日视频制作教程F900xr宝马摩托车提车交车仪式AE模板修改文字特效广告生成神器素材祝福玩法AE模板工程 AE模板套用改图文教程↓↓&#xff1a; 怎么如何做的【生日视频制作】F900xr宝马摩托车提车交车仪式AE模板修改文字软件生成器教程特效素材【AE模板】 生日视频制作步骤&a…

【变化检测】基于IFN建筑物(LEVIR-CD)变化检测实战及ONNX推理

主要内容如下&#xff1a; 1、LEVIR-CD数据集介绍及下载 2、运行环境安装 3、IFN模型训练与预测 4、Onnx运行及可视化 运行环境&#xff1a;Python3.8&#xff0c;torch1.12.0cu113 likyoo变化检测源码&#xff1a;https://github.com/likyoo/open-cd 使用情况&#xff1a;代…

00Mac 安装配置Python3虚拟环境(VirtualEnv、virtualenvwrapper扩展包)

文章目录 前言一、安装二、mac需要配置环境变量三、报错&#xff1a;workon: command not found 前言 本文主要记录&#xff0c;Mac 安装配置Python3虚拟环境&#xff08;VirtualEnv、virtualenvwrapper扩展包&#xff09;&#xff0c;windows直接执行命令即可&#xff0c;mac…