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

基于地理坐标的高阶几何编辑工具算法(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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 一周开发一个在线客服系统
  • 实现信号发生控制
  • IDEA中一些常见操作【持续更新】
  • echarts-树图、关系图、桑基图、日历图
  • C++ Primer (第五版)第九章习题部分答案
  • 【openpcdet中yaml文件的DATA_AUGMENTOR学习】
  • vue...
  • 二叉树基于队列实现的操作详解
  • python梯度下降法求解三元线性回归系数,并绘制结果
  • EyeMock下载与使用教程
  • 【C++项目】实时聊天的在线匹配五子棋对战游戏
  • in 和exists的区别
  • DHCP简介
  • 探索亚马逊云科技技术课程:大模型平台与提示工程的应用与优化
  • Virtuoso IC5141 实验七 两级运算放大器设计
  • [译]Python中的类属性与实例属性的区别
  • Codepen 每日精选(2018-3-25)
  • C学习-枚举(九)
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • IndexedDB
  • MySQL QA
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • Python学习之路13-记分
  • SpingCloudBus整合RabbitMQ
  • Spring Boot快速入门(一):Hello Spring Boot
  • TypeScript实现数据结构(一)栈,队列,链表
  • ViewService——一种保证客户端与服务端同步的方法
  • zookeeper系列(七)实战分布式命名服务
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 前端
  • 深度学习入门:10门免费线上课程推荐
  • 通过npm或yarn自动生成vue组件
  • 微信公众号开发小记——5.python微信红包
  • 写代码的正确姿势
  • 学习HTTP相关知识笔记
  • linux 淘宝开源监控工具tsar
  • ​ArcGIS Pro 如何批量删除字段
  • ​Java并发新构件之Exchanger
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • #QT(TCP网络编程-服务端)
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (55)MOS管专题--->(10)MOS管的封装
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (三)elasticsearch 源码之启动流程分析
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (四)汇编语言——简单程序
  • (循环依赖问题)学习spring的第九天
  • (一)、python程序--模拟电脑鼠走迷宫
  • (原)本想说脏话,奈何已放下
  • (转)创业家杂志:UCWEB天使第一步
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .apk文件,IIS不支持下载解决
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .NET编程——利用C#调用海康机器人工业相机SDK实现回调取图与软触发取图【含免费源码】
  • .NET导入Excel数据