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的三角剖分算 ...
随机推荐
- Surface,送我都不要
本文作于前几天,由于今天的突发新闻,已作了修订. Nokia的着火史 自从Elop那篇着火的平台备忘录出炉,Nokia的杯具就已经造成,唯一令人不解的就是:Elop为什么还没有被开除? 距离这个备忘录 ...
- Java基础:多态(重载和重写)
转载请注明出处:jiq•钦's technical Blog (1)域与静态方法 记住"仅仅有普通方法的调用是多态的". 而域和静态方法不是:对于域的訪问.在编译期间就已经进行解析 ...
- CodeForces 228D. Zigzag(线段树暴力)
D. Zigzag time limit per test 3 seconds memory limit per test 256 megabytes input standard input out ...
- Android中Drawable分类汇总(上)
Android把可绘制的对象抽象为Drawable,不同的图形图像资源就代表着不同的drawable类型.Android FrameWork提供了一些具体的Drawable实现,通常在代码中都不会直接 ...
- AsyncTask的用法总结
这几天被AsyncTask虐得不行,在此总结下 首先: AsyncTask的参数介绍 在开发Android移动客户端的时候往往要使用多线程来进行操作,我们通常会将耗时的操作放在单独的线程执行,避免其占 ...
- perl 函数回调 引用$client->run(sub {$client->sync});
匿名函数引用: [root@wx03 wx]# perl a1.pl CODE(0x2077b30) test [root@wx03 wx]# cat a1.pl $ref= sub {return ...
- Recipes — Bottle 0.13-dev documentation
Recipes - Bottle 0.13-dev documentation Recipes¶ This is a collection of code snippets and examples ...
- [置顶] RFS的web自动化验收测试——常见问题指引
引言:什么是RFS——RobotFramework+Selenium2library,本系列主要介绍web自动化验收测试方面. ( @齐涛-道长 新浪微博) 下面的内容还没整理好,先发个问题解决机制吧 ...
- C#的静态构造函数
“静态构造函数”典型应用于第一次使用类时的初始化工作,注意“第一次”,意思是它只执行一次. 有同学说了,类的初始化不是有构造函数嘛?我们回答:构造函数是每个实例被声明时都会执行的,它属于每一个实例,而 ...
- java WEB Response重定向和缓存控制
package cn.com; import java.io.IOException; import javax.servlet.ServletException; import javax.serv ...