首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CGAL:线段和多边形之间的交点?

CGAL:线段和多边形之间的交点? [英] CGAL: Intersection between a segment and a polygon?...的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 我有一组多边形,我想测试它与线段之间的交点。 我检查了手册,但找不到匹配的功能。...点,线,线段,三角形,平面之间的交点确实存在。 多边形之间的交点也在那里。 我的问题是: 有这样的功能吗? 如果没有,这是否意味着我需要将多边形分解为多个部分,并在这些部分之间进行相交?...(我不愿意这样做的原因是,我认为CGAL实际上可能会使用这种方式在多边形之间进行相交。为什么没有这样的函数将线与多边形相交?)或者还有其他更好的方法吗?...推荐答案 最简单的方法是创建一个Polygon_set_2对象,该对象可能包含几个多边形。要使用此集测试外部多边形的交集,您只需应用do_intersect方法。

51730
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    GJK算法计算凸多边形之间的距离

    但其实 GJK 算法发明出来的初衷是计算凸多边形之间的距离的. 所以我们来学习一下这种算法....以下图为例,显然shape1(三角形)和 shape2(四边形)没有交集,然后我们想计算它俩之前的距离 ? 做出它俩的 Minkowski 和如下 ? 所以答案就是 OD 的长度....一般情况下,我们都会先做碰撞检测,然后再求他们之间的距离 还有一个有趣的问题是,我们已经能求出两个凸多边形的距离了,那么你能更进一步求出产生这个距离的那对点吗?...而求两根线段之间的最短距离的实现点对就很简单了. 以下面一道经典的题目来证明上面的算法正确....题目概述 给定两个不相交的凸多边形,求其之间最近距离 时限 1000ms 64MB 输入 第一行正整数N,M,代表两个凸多边形顶点数,其后N行,每行两个浮点数x,y,描述多边形1的一个点的坐标,其后

    4.8K30

    ArcGIS进阶:常用叠加分析工具介绍

    裁剪 提取与裁剪要素相重叠的输入要素。 用法 输出要素类将包含输入要素的所有属性。...由面要素裁剪线要素: 由面要素裁剪点要素: 由线要素裁剪线要素: 由点要素裁剪点要素: 相交 计算输入要素的几何交集。然后输出相交的要素 输入要素必须是简单要素:点、多点、线或面。...如果输入具有不同几何类型(即,面上的线、线上的点等),则输出要素类几何类型默认与具有最低维度几何的输入要素相同。...交集取反 矢量叠置分析中将获得两个图层去掉它们之间的公共部分 用法 输入和更新要素类或要素图层必须具有相同的几何类型。 擦除 通过将输入要素与擦除要素的多边形相叠加来创建要素类。...更新 计算输入要素和更新要素的几何交集。输入要素的属性和几何根据输出要素类中的更新要素来进行更新。 用法 输入要素类型必须是面。 此工具将不修改输入要素类。工具的生成结果将写入到新要素类。

    1.4K40

    GIS拓扑讲解点线面几何体的拓扑关系判断及运算分析_turf案例

    Turf.js简介Turf.js是JavaScript  空间分析库,由Mapbox 提供,Turf 实现了空间分析操作,例如生成缓冲区、计算等高线,建立 TIN 等;空间几何对象关系的计算,点、线、面之间包含...良好的模块化设计使得 Turf 不仅可用于浏览器端(以往只属于桌面 GIS  的分析功能,已经可以在浏览器中使用),还可以通过 Node.js 在服务器端使用(过往一般只能找到java或者C++分析包)...判断两个图形的交集是否和其中的一个图形拥有相同的维数,并且他们交集不能和其中任何一个图形相等。该方法只使用与两个Polyline之间或者两个Polygon 之间。...crosses 穿过(相交)这里的拓扑关系比较特殊,使用crosses,不能在同纬度使用,但可以在不同的维度使用,如:点和线,线和面等。不能在线与线之间,和点与点之间,也不能在面与面之间使用。...对于需要交叉裁剪的(如:相交的,这里的相交是,overlaps,而不是insertect),再进行逻辑分析contains 包含必须完全在范围之内的。

    2.6K10

    矢量数据的空间分析

    缓冲区分析 缓冲区 缓冲区:在输入要素周围某一指定举例内创建缓冲区多边形。 输入要素:要进行缓冲的输入点、线或面要素。也可以是注记,注记图层的缓冲是注记图形的缓冲。...缓冲距离的描述:可以输入一个固定值或一个数值型字段作为缓冲距离参数,固定值所有要素的缓冲区大小都一样,面可以正值也可以负值,点、线只能是正值;字段值每个要素缓冲区大小由字段值确定。...矢量叠加分析 相交 相交工具用于执行以下操作: 确定处理所需的空间参考。 对要素进行裂化和聚类。 确认来自所有要素类或图层的要素之间的几何关系(交集)。...将这些交集作为要素(点、线或面)写入到输出要素。   输入可以是几何类型(点、多点、线或面)的任意组合。...在这种情况下,使用此工具不会查找来自不同要素类或图层的要素之间的交集,但会查找该输入中的要素之间的交集。使用此工具可以发现面叠置和线相交(相交为点或线)。

    1K20

    如何使用CGAL轻松检索两条相交多边形的相交线

    如何使用CGAL轻松检索两条相交多边形的相交线(从第一个交点到最后一个交点)。看到图像的澄清,绿线是我想要的。...使用CGAL获取多边形相交线 Two intersecting polygons with intersection line 目前我使用下面的算法,在那里我得到的交集多边形,然后发现这是两个多边形的边界点...有人可以告诉我这是否是正确的方法,或者指出如何更好地做到这一点。 来源 2017-08-02 D.J. Klomp A 回答 2 将两个多边形的线段插入到2D排列中。然后找到具有度4的顶点。...= arr.end_vertices(); ++it) { if (4 == it->degree()) ... } 可以避开“段”名单的建设,而是直接将多边形细分成使用迭代器适配器的安排...(这是纯粹的通用编程,与CGAL无关。)

    39440

    硬核万字长文:我是如何把Skia的体积“缩小”到18的?

    关于矢量渲染器 矢量渲染器作为现代 UI 的核心支撑模块,常常被作为内嵌在操作系统内的图形子系统的一部分提供给上层开发者。...GPC 通用多边形裁剪 得到 GPC 的过程非常坎坷,但是算法本身却十分容易描述。如下简要的描述下算法的整个过程。为了简单,采用下图 2 个凸多边形的并集运算作为样例。...目前硬件加速矢量渲染已经作为重要的优化手段来使软件界面更加流畅。 裁剪 此裁剪和几何部分的多边形裁剪并不一样。...ClipPath Skia 中提供了一个裁剪画布的接口 ClipPath,它可以把一个贝塞尔曲线围成的区域作为裁剪的区域。...下图描述了如何剔除矩形之间的堆叠,只需要执行一次线扫描算法即可。 同样矩形非常容易就可以剖分成三角形,并不需要使用复杂的三角剖分的算法。所以可以快速构建对二维区域的描述。

    2.3K10

    给定一个边与边可能相交的多边形,求它的轮廓线

    最近遇到一个需求,给定一个多边形(边与边可能相交),求这个多边形的轮廓线。 需要注意的是,轮廓线多边形内不能有空洞,使用的不是常见的非零绕数规则(nonzero)以及奇偶规则(odd-even)。...1; const right = (i + 1) % size; adjList.push([left, right]); } return adjList; } 需要求解的轮廓线多边形的点不一定是目标多边形上的点...接着求交点 4 在 1-2 中距离起点(即点 1)的距离,基于它判断落在 1-2 中哪两个点之间。结果是在点 1 和 点 2 之间,更新这两个点的邻接点数组,将其中的 1 和 2 替换为 5。...(1)取左下角点作为起点 找顶点(不包括交点)中最靠下的点,如果有多个,取最靠左的。这个点一定是轮廓多边形的一个点。...,超过最大循环次数 ${MAX_LOOP}`); } // outlineIndices 为我们需要的轮廓线多边形 这里有个求两向量夹角的方法要实现,这里不具体展开了。

    16510

    FPGA设计心得(13)aurora的线速率及其用户时钟之间的关系?

    从上面的定制页面可以看出,我们的线速率选择的是3.125Gbps,看起来很高了,其实看单位也就是bit而已!除以8,变成390.625MBps,这时候是字节了,如果传输的数据具有32bit呢?...那么线速率可以转换位97.65625MQBps,其中的QB就是QUAD Bytes(也就是双字,DW),如果使用一个时钟去传输这样的32bit数据,一个时钟传输一个数据,需要一个90多M的时钟就够了!...线速率为3.125Gbps,那么如果一个并行用户时钟传输一个数据,需要一个78.125M的时钟就行了。 为了验证,就上面的定制页面,生成一个例子程序,进行仿真,如下: ?...下面给出结论,如果采用8B/10B编码,用户时钟为线速率除以编码后的用户数据位宽。编码前的位宽可以在IP的定制页面选择: ? 数据位宽选择 在算上编码,就很容易得出编码后的位宽!...仿真用户时钟 总结 很简单地聊几句,最后,我认为直到USER_CLK和线速率之间的关系是很重要的,有助于我们选择线速率。

    2.5K10

    基于UE4Unity绘制地图基础元素-线(下篇)

    这种做法需要利用上篇文章中为了绘制圆角引入的geometry信息,x信息可以标识长度,而y值就可以作为宽度方向上的标识。若定义ratio为线宽的比值,则可根据片元着色器中y值的分布确定渲染颜色。...r * units 其中m是由系统计算出的多边形深度斜率的最大值,多边形越是与近裁剪面平行,m就越接近于0,r是深度值可分辨的最小单位,是由系统指定的常量。...若多边形与裁剪面平行,则可以使用factor=0,units=1的组合控制偏移,而对于与裁剪面有夹角的多边形,需要factor一同控制偏移量的大小,Offset结果大于0会使得多边形远离近裁剪面进行偏移...使用Offset指令作用于裁剪空间的深度值可以解决多个Object之间的Z-fighting问题,但当为了减少Draw Call将所有线合并为一个mesh后就无法使用了,因此需要借助于其原理手动调控同一...3、调整顶点的裁剪坐标 深度信息是在片元着色器之后计算得到的,因此无法通过着色器的可编程部分直接更改。但深度信息是由裁剪空间的齐次坐标计算而来,因此可以通过操控裁剪空间坐标达到调整深度的目的。

    1.1K42

    “小身材大作为”的传感器

    传感器是物联网建设背景下的核心零部件 万物互联的科技实现离不开各种各样的传感器,小到苹果公司的抛光布,每一件物体都是无数个传感器的高度集合体。...传感器作为物联网的上游基础层中最核心的零件之一,存在于大量的物联网场景中,如智慧城市、智慧工业。其中,汽车电子行业是传感器应用最多的领域。...,制成相应的声学、力学、光学传感器等;进而,又出现了集成传感器,即将单个传感器可以实现的功能集合起来,如手机中的指纹传感器就是光、压力、温度等多种传感器的集合体。...“小身材大作为”的传感器 传感器(transducer/sensor)是一种检测装置,测量外界的感知变化,将感知到的非电学信号按一定规律变换成为电信号或其他所需形式的信息输出,最终完成物理信号到电信号的信息变换...俯仰角β:斜距R与它在水平面上的投影在铅垂面上的夹角,有时也称为倾角或高低角 雷达的测距原理是测量发射脉冲与回波脉冲之间的时间差,因电磁波以光速传播,据此就能换算成雷达与目标的精确距离。

    50430

    带你实现一个简单的多边形编辑器

    开头 多边形编辑器少数见于一些图片标注需求,常见于地图应用,用来绘制区域,比如高德地图: 示例地址:https://lbs.amap.com/api/jsapi-v2/example/overlay-editor...,所以需要监听点击事件,然后用线把点击的点都连接起来,鼠标点击事件对象的clientX好clientY是相对于浏览器窗口的,所以需要减去画布和浏览器窗口的偏移量来得到相对于画布的坐标: toCanvasPos...我们想要一个从始至终都是闭合的区域,这很简单,把首尾两个点连起来就好了,但是这样不会跟着鼠标当前的位置变化,所以需要把鼠标当前的位置也作为一个顶点追加进去,不过在没有点击前它都只是一个临时的点,把它放进...result = [nearestPoint.x, nearestPoint.y] } } // 吸附到顶点 // ... } 效果如下: 删除及新增顶点 高德的多边形编辑器在没有拖动的时候会在每条线段的中心都显示一个实心的小圆点...支持多个多边形并存 以上只是完成了一个多边形的创建和编辑,如果需要同时存在多个多边形,每个都可以选中进行编辑,那么上面的代码是无法实现的,需要调整代码组织方式,每个多边形都要维护各自的状态,那么可以创建一个多边形的类

    1.2K40

    图形编辑器基于Paper.js教程12:井身结构编辑器,多条完全平行的弯曲线,使用额外平行线来作为弯曲中心线的度量尺

    背景 对于弯曲的三条平行线,一开始我以为只需要使用中心线,然后复制两条,一个向右下角平移,一个向左上角平移,就能让三条线实现完全平行,每一处的距离都相等。...最后请教了ChatGPT,对于曲线的平行线,要使用切线加法线的方式来确定。法线的距离就是平行距离。...案例还有一些小问题,就是末尾的封口时,细节没有处理,只是简单地做作x轴,加减。理想情况是,想中心线作垂直线。然后对最外层的线段连线。 附加一个弯曲的中心线度量尺。 垂直的井身 垂直的井身 <!...// 更新外侧线位置 // // handle.position = segment.point; // 确保操作点跟随移动 // }; // 为中心线的每个点添加拖动事件...// 更新外侧线位置 // // handle.position = segment.point; // 确保操作点跟随移动 // }; // 为中心线的每个点添加拖动事件

    13810

    POSTGIS 总结

    (geometry) —— 将线串的第一个坐标作为点返回 ST_EndPoint(geometry) —— 将线串的最后一个坐标作为点返回 ST_NPoints(geometry) —— 返回线串的坐标数量...(geometry) —— 以线串的形式返回多边形最外面的环 ST_InteriorRingN(geometry, n) —— 以线串形式返回指定的内部环 ST_Perimeter(geometry) ...6.2 ST_Buffer **ST_Buffer(geometry, distance)**接受几何图形和缓冲区距离作为参数,并输出一个多边形,这个多边形的边界与输入的几何图形之间的距离与输入的缓冲区距离相等...6.3 ST_Intersection 叠置(overlay)- 通过计算两个重叠多边形的交集来创建新的几何图形。...) 多边形的环只要不自相交,则该多边形就是简单的 7.3.2 多多边形 多多边形里只要各个子元素(单多边形)是简单的、有效的,而且子元素之间只在有限的点上接触,那么它就是简单的、有效的。

    6.2K10

    一篇文章带你玩转PostGIS空间数据库

    ST_Buffer(geometry, distance)接受几何图形和缓冲区距离作为参数,并输出一个多边形,这个多边形的边界与输入的几何图形之间的距离与输入的缓冲区距离相等。...道路养护作业,指在一对英里测量之间沿着公路网发生的作业。 水产库存,其中鱼的存在位置被记录为距离上游的一段位置之间。 河流的水文特征,以河流的某一个点到另一个点作为参考。...使用这些内部、外部和边界的定义,任何一对空间要素之间的关系都可以用一对要素的内部/边界/外部/之间九个可能的交集的维数来表征。...关于它们的交集的DE9IM矩阵如下: 请注意,以上两个要素的边界实际上根本不相交(线的端点与多边形的内部相交,而不是与多边形的边界相交,反之亦然),因此B/B单元用"F"填充。...,而在于使用它们作为匹配参数来查找彼此之间具有特定关系的几何图形。

    7.5K50

    scp 服务器之间的拷贝命令

    文章时间:2019年10月25日 17:09:55 解决问题:服务器之间的文件拷贝 scp是secure copy的缩写,scp是Linux系统下基于ssh登陆进行安全的远程文件拷贝命令。...,文件名字不变,第2个指定了文件名; 第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名; 实际应用案例 scp /home/file/...从远程复制到本地 从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可 scp root@192.168.1.1:/home/root/others /home/file/photo/...001.png scp -r 192.168.1.1:/home/root/others/ /home/file/photo/ 常见出错问题 #程服务器防火墙有为scp命令设置了指定的端口 答:我们需要使用...-P 参数来设置命令的端口号 #scp 命令使用端口号 1234 scp -P 1234 root@192.168.1.1:/home/file/1.png /home/iotadmin #确保使用的用户具有可读取远程服务器相应文件的权限

    1.5K20
    领券