尧哥大魔王.hpp

尧哥的公开技术博客

基于CGAL高效生成TIN网

CGAL生成TIN网效率很高
参考文档:
http://doc.cgal.org/latest/Triangulation_2/index.html#Chapter_2D_Triangulations

处理核心代码如下:

#include <iostream>
using namespace std;

#include <fstream>
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Delaunay_triangulation_2.h>
typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
typedef CGAL::Delaunay_triangulation_2<K>   Triangulation;
typedef Triangulation::Point                Point;

int main() {
    //测试数据
    std::ifstream in("triangulation_prog1.cin");

    //读入测试数据
    std::istream_iterator<Point> begin(in);
    std::istream_iterator<Point> end;

    //通过文件添加
    Triangulation t;
    t.insert(begin, end);   //这里已经形成了TIN网

    //直接添加
    Triangulation::Point pt(10, 6);
    t.push_back(pt);


    //输出点的数目
    cout<<"t size = "<<t.number_of_vertices()<<endl;

    //获取每个face(TIN)
    //输出面的数目
    cout<<"face count = "<<t.number_of_faces()<<endl;
    Triangulation::Face_iterator fi = t.faces_begin();  //三角形迭代器
    int nFaceCount = 0;
    for (fi = t.faces_begin(); fi!=t.faces_end(); fi++)
    {
        nFaceCount++;
        cout<<"tri id "<<nFaceCount<<" = \t";

        //输出三角形的每个顶点
        for (int i=0; i<=2; i++)
        {
            cout<<fi->vertex(i)->point()<<"; ";
        }
        cout<<endl;

    }

    return 0;
}

输入数据 triangulation_prog1.cin :
输入测试数据

输出结果:
输出结果

4w5个珠海市POIs形成的TIN网 (运算时间:1分钟):
珠海市POIs-TIN

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/whuyao/article/details/51544141
文章标签: CGAL TIN C++
个人分类: CPP Big Data Soft
上一篇14级数据结构C/C++补充内容大纲
想对作者说点什么? 我来说一句

tin快速生成代码

2011年12月27日 49KB 下载

没有更多推荐了,返回首页

关闭
关闭