![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算几何算法与实现
SimpleFelix
编程是一种修行...
展开
-
凹包求解之滚球法
滚球法的思想最初源自于从二维点集重建平面形状的问题,后来笔者将这个思想用于做平面曲线的简化。例如,下面的平面点集,如何构建其分布区域表示的大致轮廓形状呢?算法思路的来源-Graham扫描 笔者最初想到的一个从求凸包的GrahamScan算法衍生出来的一个方法。求凸包的GrahamScan算法先找到一个Y最低的点作为起始点,然后使用叉积角度判断的方法去判断点的走向,最后在栈内留下了凸包的点序列。具体的算法讲解与代码,网上一搜各种有,这里就不详细表述。本文要介绍的方法也是和Gra...原创 2020-08-18 19:22:54 · 8195 阅读 · 16 评论 -
CAD—dxf & dwg格式解析库
最近研究了一下CAD数据自动化建模的相关内容,涉及到dwg格式的数据读写以及转换工具,通过查找比对,主要研究了两个开源库,分别是libdxfrw和libredwg。dwg格式的数据是CAD内部工作格式,以二进制方式存储,格式不开源。格式设计规范参照dwg格式设计规范:(https://blog.csdn.net/Caoyang_He/article/details/80343945)1、libdxfrw:是一个开源的c++库,可以读写ascii和二进制格式的DXF文件。支持R14 到V2015版本...原创 2020-08-12 17:48:31 · 6026 阅读 · 0 评论 -
判断点在多边形内的算法(Winding Number详解)
Winding Number原创 2020-06-30 20:13:08 · 11023 阅读 · 1 评论 -
优雅高效的多边形对称性判定算法
旋转对称轴对称原创 2020-05-16 19:33:20 · 2741 阅读 · 1 评论 -
点到多边形的切线
前言暴力算法二分搜索原创 2020-02-28 17:18:37 · 2037 阅读 · 0 评论 -
两个多边形之间的切线算法,最通俗易懂的讲解
前言原创 2020-03-08 16:32:26 · 1624 阅读 · 1 评论 -
凸多边形的极值点
前言在计算几何中,我们经常需要寻找一个2D多边形(Polygon)的极值点。例如通过x\y的极值点,我们可以定义一个多边形的包围盒。更一般的情况下,我们可能会需要寻找一个多边形在任意方向上的极值点。对于n个点的点集,很容易找到一个O(n)的算法,只需要依次测试每个点即可。然而对于凸多边形,可以利用二分搜索的思想在时间内找到极值点。首先,定义一个任意的方向向量u,接下来我们详细讲解该算法的思路。...原创 2020-02-26 11:45:55 · 1478 阅读 · 0 评论 -
多边形快速凸包算法(Melkman‘s Algorithm)
前言平面点集的凸包算法一文介绍了如何计算平面点集或者任意多边形的凸包。对于随机的平面点集,Graham scan和Andraw's 单调链算法已经是最快的算法了。但是对于没有自相交的封闭的简单多边形,存在线性复杂度的算法。下面介绍这一优雅高效的算法。一般的2D凸包算法,首先将点进行排序(时间复杂度),然后利用栈操作在O(n)的时间复杂度内计算凸包。初始的排序决定了最终的时间复杂度。但是本文...原创 2020-02-11 10:39:29 · 8216 阅读 · 11 评论 -
平面点集的凸包算法
平面点集的凸包算法参考翻译自Dan Sunday的文章The Convex hull of a point set凸包计算是计算集合中的一个经典问题。这一问题有许多变种,其中最普遍的形式是计算平面离散点集的最小凸集(称为“凸包”)。这一算法也可以用于多边形或者一组线段集的凸包求解。在许多领域中都需要用到凸包算法,例如:碰撞检测、消隐、形状分析等。最流行的凸包算法是Graham扫描算法和P...原创 2020-02-07 17:31:23 · 8419 阅读 · 0 评论 -
多段线简化算法,看这一篇就够了
本文参考自:https://www.codeproject.com/Articles/114797/Polyline-Simplification前言在计算几何中,经常我们会碰到需要简化输入Polyline的场景。多段线(Polyline)简化算法可以帮助我们减少Polyline的点数,从而降低输入规模。对多段线简化算法,通常的做法是在一定的近似精度下,删除一些点或者边。在计算机图形学中,...原创 2020-02-05 19:17:22 · 5567 阅读 · 0 评论