基于地理坐标的高阶几何编辑工具算法(4)——线分割面

文章目录

  • 工具步骤
  • 应用场景
  • 算法输入
  • 算法输出
  • 算法示意图
  • 算法原理

工具步骤

选中待分割面,点击“线分割面”工具,绘制和面至少两个交点的线,双击结束,执行分割操作

应用场景

快速切分大型几何面,以降低面的复杂度,提升编辑效率。常与合并操作共同使用。

算法输入

待分割的面和一条绘制的线

算法输出

分割后的多面

算法示意图

在这里插入图片描述

算法原理

该算法参考该原理:几何计算-基于Turf.js实现多边形的拆分及合并
该原理示意图
在这里插入图片描述
上述方法存在以下问题:

  1. lineSplit方法利用lineIntersect的相交点,无法正确切割线,因为lineSplit对splitter取了7位精度
  2. 根据质心判断分割面是否在输入面内有局限性,特殊场景判断有误
    因此,本算法主要在这两部分做出改进:

对1改进:

  1. 先利用lineIntersect方法,计算出面的外轮廓outerL和线L的交点intersects = [S0,S1]
  2. 遍历intersects,对每一个交点,利用nearestPointOnLine方法,算出交点在outerL和L中的索引outerLinds和Linds
  3. 对outerLinds和Linds按照距离线段起始点距离从小到大排序,得到outerLinds_sort和Linds_sort
  4. 遍历outerLinds_sort和Linds_sort,生成多个线段outerPieces和lPieces,全部放入pieceCollection中
  5. 利用polygonize处理pieceCollection,得到多面splittedCollection

对2改进:
在这里插入图片描述

  1. 遍历splittedCollection,利用intersect方法判断是否和outerP相交,如果相交,则保留,得到filterCollection(这里不能用booleanIntersect方法,有精度问题)

最终,遍历filterCollection,和孔洞做diff,得到finalCollection

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

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

相关文章

【Makefile】Makefile 编译 Keil 工程(Linux 环境)

本文使用的开发板为 stm32f103C8T6,使用的驱动库为stm32标准库。 目录 一、软件下载 1、stm32 标准库 2、arm-none-eabi 工具链 3、烧录器 二、Keil 工程改造 1、Keil 工程 2、基本 Makefile 工程 3、添加启动文件 4、添加链接脚本 5、去掉 core_cm3.c 三…

05Django项目--前端公共文件和其他html文件的适配

对应视频链接点击直达 Django项目--前端公共文件和其他html文件的适配 对应视频链接点击直达前端页面准备Pubilc页面设置 OVER,不会有人不会吧不会的加Q1394006513结语 接着上一节 前端页面准备 为了方便大家更好的复制,我把整个项目及templates文件夹和…

Buffer Pool中是如何管理Page页

Page页分类:在BP的底层采用的是链表数据结构管理Page。Page根据状态可以分为3中类型 1)free Page:空闲Page,未被使用的Page。 2)clean Page:被使用的Page,但是数据没有修改过。 3)dirty Page:脏页,被使用过的Page,并且数据被修…

FastDfs快速安装和数据迁移同步。Ubuntu环境

一:防火墙 ufw status 二:下载 分别是(环境依赖,网络模块依赖,安装包) git clone https://github.com/happyfish100/libfastcommon.git git clone https://github.com/happyfish100/libserverframe.git …

nginx服务器执行的过程

一:打包 1.打包前的分析 文件路径下npm run preview -- --report 生成打包之后的内容 2.解决有些内容体积过大的问题 1.删除有些不使用但是占用较多的,将main.js上import删除,打包时不会有 2.不能删除但是内容较大的 vue.config.js文件夹下 externals: { vue: Vue,…

Jenkins动态slave

目录 所需环境 安装nfs 部署Jenkins 安装插件 ​编辑添加凭据 配置动态slave 连接kubernetes集群 ​编辑配置Jenkins地址 ​编辑配置Pod模板 ​编辑确认代理端口 创建任务测试 在当今软件开发生命周期中,持续集成/持续部署(CI/CD)已…

告别死记硬背!这一AI学习法让你和别人的差距越拉越大

文章目录 一、初步提问二、需求分析三、提示词初步设计四、提示词迭代五、需求扩展 今天我要分享的是如何利用GPT来辅助学习和理解各种繁琐、复杂、抽象的教材内容或者冗长的片段。 今天将以《操作系统教程》中的内存管理章节为例进行讲解。 本次采用的大模型是通义千问2.5&am…

STM32---蓝牙模块ECB02(从机模式_与手机通信)

目录 1、ECB02 重点 参数 2、引脚说明 3、AT指令使用重点 4、使用USB转TTL模块测试 5、STM32开发板的接线 6、STM32通信代码 7、手机小程序 连接ECB02 1、ECB02 重点 参数 蓝牙协议: 5.2主从模式:主、从一体,可设置睡眠模式&#xff…

mac远程桌面连接工具:Microsoft Remote Desktop正式版

Microsoft Remote Desktop 是一款由微软开发的远程桌面控制软件。它允许用户通过互联网连接到远程计算机,从而可以在本地计算机上访问和控制远程计算机的桌面、文件和应用程序。 下载地址:https://www.macz.com/mac/1004.html?idOTI2NjQ5Jl8mMjcuMTg2Lj…

x264 码率控制 MBtree 原理:mbtree_propagate_list 函数分析

mbtree_propagate_list 函数功能 是视频编码中宏块树传播算法的一部分,用于在编码决策过程中更新参考帧的传播成本。这个过程特别关注于如何处理运动向量(Motion Vectors, MVs)以及如何根据这些MVs对参考帧的成本进行加权,从而影响最终的编码选择。 该函数作为x264编码器…

Servlet的request对象

request对象的继承关系 1.HttpServletRequest接口继承了ServletRequest接口,对其父接口进行了扩展,可以处理满足所有http协议的请求 2.HttpServletRequest和ServletRequest都是接口,不能创建对象,因此在tomcat底层定义实现类并创…

modbus开源库libmodbus的C语言使用记录(实现简单的modbus主机/丛机程序,解决libmodbus库安装出现的问题)

libmodbus简介 libmodbus 是一个开源的、跨平台的C库,用于实现Modbus通讯协议。它支持Modbus RTU(RS-232/485)和Modbus TCP协议,可以使开发者方便地在项目中集成Modbus通讯功能。libmodbus的设计目标是简单、灵活和高效,适用于各种大小的嵌入式和桌面应用。 编译运行测试…

ffpmeg windows WSl 编译so

1.NDK 环境变量配置 2.git clone ffpmeg 3.创建脚本(需先下载gcc编译器) 64位脚本如下 #!/bin/bashexport NDK/home/test/ndk20 #这里配置先你的 NDK 路径 TOOLCHAIN$NDK/toolchains/llvm/prebuilt/linux-x86_64function build_android {./configure \ …

鸿蒙ArkUI-X跨平台技术:【SDK结构介绍】

ArkUI-X SDK目录结构介绍 简介 本文档配套ArkUI-X,将OpenHarmony ArkUI开发框架扩展到不同的OS平台,比如Android和iOS平台,让开发者基于ArkUI,可复用大部分的应用代码(UI以及主要应用逻辑)并可以部署到相…

RedHat9 | 配置转发DNS服务器

一、实验环境 1、介绍 转发服务器(Forwarding Server)接收查询请求,但不直接提供DNS解析,而是将所有查询请求发送到另外的DNS服务器,将查询的结果返回后保存到缓存中。如果没有指定转发服务器,DNS服务器会…

【Unity Shader入门精要 第8章】透明效果(二)

1. 透明度测试 透明度测试的原理是将片元的 Alpha 值与某个指定的阈值进行比较,当 Alpha 超过阈值时,该片元正常显示,若 Alpha 值低于指定的阈值,则将该片元丢弃。准确来讲,透明度测试并不是为了渲染一种半透的效果&a…

IS-IS基本配置 IS-IS邻接关系

一.IS-IS基本配置 原理概述 和 OSPF 路由协议一样, IS-IS 也是一个应用非常广泛的 IGP 路由协议,很多 ISP 网络、特别是大型的ISP网络都部署了IS-IS网络协议。 RIP 、 OSPF 等许多 IGP 都是针对 IP ( Internet Protocol )这个网络层协议而开…

二、信号连接槽函数

需求:点击Button按钮(下班),label显示淦饭 信号发出者:Button 发送的信号(signals):被点击 信号接收者:label 信号的处理(slots):显示…

0基础安装 composer

解决: composer 不是内部或外部命令,也不是可运行的程序 或批处理文件。 php composer.phar可以运行 安装环境:系统w11 官网地址:Composer 1.安装composer 1.1打开命令行窗口 在命令行窗口里,右键是粘贴&#xff0…

精准安全运维,统信UOS服务器版V20(1070)漏洞修复指南丨年度更新

随着信息安全威胁的不断升级,操作系统的安全性已成为企业运维的关键要素。 为了确保业务运行环境的安全无忧,统信软件持续致力于技术创新和优化,并于日前重磅推出了统信UOS服务器版V20(1070)。该系统提供了高频补丁更…