添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

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://www.cnblogs.com/xuhui24/articles/6189578.html 最近在学习格算法,本人关心的主要是3D格相关的算法,总结了一下主要包括:生成格平滑,格参数化,格重新剖分,格简化,格修复,格变形,其他算法(细分,布尔操作,偏置,抽壳,雕刻,曲面切割)等。   从开源的算法库入手,分别用了CGAL,VTK,Mes... 在本文之前,让我们先悼念一位大师:Martin Isenburg,德国人,是rapidlasso的所有者,也是LASTools、LASzip的创造者,于2021年9月9日在家中自杀,天才总是孤独的,也是具有社会担当的,给我们留下宝贵的财富,愿大师在另一世界再无痛苦。 本文测试的是读取las以及压缩后laz文件的效率问题,主要测试LASTools、PDAL以及CGAL,PCL没有读取las文件的接口,这里就不进行测试了。 测试数据分别是包含60万、2千... #include typedef CGAL::Exact_predicates_exact_constructions_kernel Kernel; typedef Kernel::Point_2 Point_2; int main() Point_2 p(0, 0.3), q, r(2, 0.9); q = Point_2(1, <br />附加说明: <br />1.       CGAL整体概述<br />CGAL是一个用C++描述的,包含三个主要部分的计算几何算法库.<br />第一部分是核心组件(Kernel),它包括基本的几何对象以及做用在这些对象上的各种操作.这些对象被实现成使用表现类参数化的独立的类,这样使得核心更具有灵活性和适应性.<br />第二部分是一系列的基础几何数据结构和算法.它们被特征类参数化.而特征类定义了数据结构或者算法和它们使用的原生类型(primitives)的接口.在很多情况下CGAL中的核心类可 核心中的数据存储是用到了域数据类型,而核心中的数据与基本几何数据的提取是通过TRAITS来的。 ARRANGEMENT中定义了点、面、边的概念,每一个最小区域在它里面被描述成面,而组成最小区域的线被描述成边,所有线的交点被描述成点。这样,需求上的概念与ARRANGEMENT中的概念可以匹配上,就证明,可以用这个算法来实现 $(CGAL)代表CGAL的文件夹地址 例如我的是:($(SolutionDir)为解决方案文件夹目录) $(SolutionDir)…\dependences\cgal\include; $(SolutionDir)…\dependences\cgal\auxiliary\gmp\include; 2、附加包含库文件目录 $(CGAL)\auxiliary\gmp\li