计算几何
文章平均质量分 59
辞穷
如果你真心想做某事,全世界都会帮你完成。
展开
-
临近图系列
临近图一系列的具有临近关系的图DT是他们的超图可以先计算出DT然后在计算出这些重要的图整体关系DT >= GG >= RNG >= EMST >= NNG0、Delaunay Triangulation(DT)定义德劳内三角剖分 唯一生成的 任意相邻两点构成的直线,定是某空圆的弦 同样是三角剖分,得老内剖分的结果:是一种使最小角达到最大的三角剖分 算法 //德劳内三角剖分 RIC算法#include using namespace原创 2021-11-27 16:49:43 · 397 阅读 · 0 评论 -
非均匀网格
非均匀网格定义可以引入新的点(Steiner Point)生成三角剖分称为Steiner Triangulation(Steiner三角剖分)目的让三角剖分后的结果每个三角形的每个角度都在45 - 90中且三角形数量少且三角形大小变化均匀基于四叉树的非均匀网格生成算法:名词每个结点代表一个正方形,结点的四个孩子分别代表其父亲正方形的四个象限(quadtree subdivision,四叉树划分)有些边界上的结点可能多于4个顶点,仍称之为正方形;正方形顶点称为角顶点(corner ver原创 2021-11-27 16:49:03 · 1214 阅读 · 0 评论 -
维诺图(Voronoi Diagram)
定义:平面中一堆点,每个点有自己的领域,领域中任意位置到这个基点的距离都要小于到其他点的距离(很自然想到垂直平分线、抛物线)维诺图本身是根据n个基点构造的,结果中最多3n-6条边,最多2n-5个顶点,是线性的复杂度:扫描线算法:是一种基于排序的算法,类比可得,最低时间复杂度O(NlogN)扫描线算法流程:空间O(N)扫描线从图像的一边到另一边(假设为从上到下)扫描线会在遇到(扫描到)某个点(event point)时触发事件对于维诺图,提出海岸线(beach line),海岸线的每条弧都是抛原创 2021-11-27 16:35:51 · 2792 阅读 · 0 评论 -
DCEL(DoubleConnectEdgeList 双向链连接表)
DCEL(DoubleConnectEdgeList 双向链连接表)DCEL用于表示平面划分:中心线、德劳内三角划分、三角划分、维诺图等大多数平面划分结构它连接这三种元素的关系:顶点(点Point3d)、边(有序的两个点Tuple<Point3d, Point3d>)、面(List<Tuple<Point3d, Point3d>>(可以转化为Polyline))对于每一个面,内部的vector顺序都是逆时针的,最外面的外包框是顺时针的。对于一个生成的DCEL可原创 2021-11-27 16:29:37 · 676 阅读 · 0 评论 -
平面划分算法
平面划分0、DCEL是什么DoubleConnectEdgeList 双向链连接表DCEL用于表示平面划分中心线得老内三角划分维诺图等大多数平面划分结构它连接这三种元素的关系:顶点(点Point3d)、边(有序的两个点Tuple<Point3d, Point3d>)、面(List<Tuple<Point3d, Point3d>>(可以转化为Polyline))对于每一个面,内部的vector顺序都是逆时针的,最外面的外包框是顺时针原创 2021-11-19 02:10:21 · 2175 阅读 · 2 评论 -
随机插入法做德劳内三角划分(递推&递归伪代码)
随机插入法做德劳内三角划分//德劳内三角剖分 RIC算法//DCEL双向连接链表// 代表一个点struct Point { int X; int Y;};// 代表一个三角形struct Trangle { Point a, Point b, Point c;};// 返回德劳内图形DT中某点P所在的三角形 (会用到DCEL结构)T TriangleContaining (Polyline DT, Point P);//找到原创 2021-11-02 19:31:03 · 373 阅读 · 0 评论