Delaunay三角剖分算法
在图像处理中,经常会使用到三角剖分算法;
具体定义及其算法可以参考:http://baike.so.com/doc/5447649.html
下面放出来代码:
Delaunay接口为存C;
测试是使用QT;
下面仅仅贴出调用方法,其他的代码见文件
if( num_points >= 3 )//三角形必须大于3个
{
int *faces = NULL;//接受生成三角形的点
int offset = 0;//用于去除每个三角形的点
int num_faces = delaunay2d((float*)points, num_points, &faces);//输入一堆不相同的点,输出三角形的点 返回三角形个数+1 这个1代表凸点的多边形 char str[512];
sprintf(str, "number of convex hull vertices: %d", faces[0]);//凸点个数
QPointF pf[16]; //过滤掉外围的凸点
offset += (1+faces[0]); for( i = 1; i < num_faces; i++ )
{
int num_verts = faces[offset];
offset++;
//每个三角形都有三个点构成
for( int j = 0; j < num_verts; j++ )
{
int p0 = faces[offset + j];
pf[j] = QPointF(points[p0].x, points[p0].y);
} painter.setBrush(QBrush(QColor(rand() % 256, rand() % 256, rand() % 256)));
painter.drawPolygon(pf, num_verts);
offset += num_verts;
}
free(faces); painter.setBrush(Qt::NoBrush);
painter.drawText(rect(), Qt::AlignCenter, str);
}
源代码为:delaunay
Delaunay三角剖分算法的更多相关文章
- paper 153:Delaunay三角剖分算法--get 这个小技术吧!
直接摘自百度百科,希望大家能根据下面的介绍稍微理顺思路,按需使用,加油! 解释一下:点集的三角剖分(Triangulation),对数值分析(比如有限元分析)以及图形学来说,都是极为重要的一项预处理技 ...
- 三角剖分算法(delaunay)
开篇 在做一个Low Poly的课题,而这种低多边形的成像效果在现在设计中越来越被喜欢,其中的低多边形都是由三角形组成的. 而如何自动生成这些看起来很特殊的三角形,就是本章要讨论的内容. 项目地址: ...
- Voronoi图和Delaunay三角剖分
刷题的时候发现了这么一个新的东西:Voronoi图和Delaunay三角剖分 发现这个东西可以$O(nlogn)$解决平面图最小生成树问题感觉非常棒 然后就去学了.. 看的n+e的blog,感谢n+e ...
- Delaunay三角剖分及MATLAB实例
https://blog.csdn.net/piaoxuezhong/article/details/68065170 一.原理部分 点集的三角剖分(Triangulation),对数值分析(如有限元 ...
- Delaunay三角剖分
Bowyer-Watson算法:1.假设已经生成了连接若干个顶点的Delaunay三角网格:2.加入一个新的节点,找出所有外接圆包含新加入节点的三角形,并将这些三角形删除形成一个空洞:3.空洞的节点与 ...
- 使用Delaunay三角剖分解决求多边形面积的问题
朋友那边最近有个需求,需要框选一个选区,然后根据选区中的点求出面积.并且让我尝试用Delaunay来解决 似乎音译过来应该是德诺类 大致如下: 我在github上找了一个可以用的Delaunay库 h ...
- OpenCV中Delaunay三角网算法例子
#include <opencv2/opencv.hpp> #include <vector> using namespace cv; using namespace std; ...
- Voronoi图与Delaunay三角剖分
详情请见[ZJOI2018]保镖 题解随笔 - 99 文章 - 0 评论 - 112
- Delaunay Triangulation in OpenCascade
Delaunay Triangulation in OpenCascade eryar@163.com 摘要:本文简要介绍了Delaunay三角剖分的基础理论,并使用OpenCascade的三角剖分算 ...
随机推荐
- PredictionIO Open Source Machine Learning Server
PredictionIO Open Source Machine Learning Server Build Smarter Software with Machine Learning Predic ...
- highcharts dynamic change line color
mouseOut: function(){ this.series.graph.attr({"stroke","#ccc"}) }
- Java基础06 组合
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们已经尝试去定义类.定义类,就是新建了一种类型(type).有了类,我们接着构造 ...
- SQL Server 2008中文企业版下载地址和序列号[转]
SQLSERVER2008下载链接http://sqlserver.dlservice.microsoft.com/dl/download/B/8/0/B808AF59-7619-4A71-A447- ...
- log4net结构
log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.其大致分为如下这些模块. Appenders模 ...
- 程序启动报错:ORA-12505;PL/SQL却可以登录的解决方法
一.异常{ ORA-12505, TNS:listener does not currently know of SID given in connect descriptor The Connect ...
- jstl标签经典
1. <c:out> 库 :Core(核心库) URI : http://java.sun.com/jsp/jstl/core 前缀 : c 描述 :<c:out> 标签是一个 ...
- sql: DUAL
FROM <<Oracle.Database.11g.SQL>> dual is a table that contains a single row. The followi ...
- Endnote X6 如何修改输出格式(output style)成为自己想要的输出格式:
Endnote X6 如何修改输出格式(output style)成为自己想要的输出格式: (1)首先尝试在endnote output style 网站中查找: http://www.endnote ...
- hdu4726贪心
Kia's Calculation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...