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);
Triangulation::Point pt(10, 6);
t.push_back(pt);
cout<<"t size = "<<t.number_of_vertices()<<endl;
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分钟):
转自: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