c++ - DEM 到 TIN 库

标签 c++

<分区>

我正在使用 C++ 开发应用程序,我需要将栅格数据 (DEM) 转换为不规则三角网 (TIN),是否推荐任何库?

我尝试使用 arcGIS 但我需要用 c++ 编写的代码

最佳答案

我不确定是否有现有的 C++ 库已经实现了这种转换。

但是如果要用 C++(使用 STL 和 CGAL 库)从头开始完成,这可以让您大致了解必须实现什么:

  1. 将您的栅格数据转换为高架三角网格 点(每个 DEM 样本成为具有 x/y/z 坐标的 TIN 顶点,DEM 中的 4 个相邻样本通过 2 个 TIN 三角形连接)。这是最简单的部分。显然这是一个 TIN,除了它根本不是不规则的并且可能包含太多样本。

  2. 从 TIN 中(一个接一个)删除冗余顶点,并重新三角化刚刚创建的洞。重复直到满意为止。那是困难的部分。首先,您需要有一些标准来衡量 TIN 顶点的冗余程度(例如,一些衡量 TIN 局部平坦度的指标)。应根据此标准对顶点进行排序(将其理解为使用优先级队列对具有此度量的顶点进行排序作为优先级)。当删除最冗余的顶点时,必须对相应的孔进行三角剖分(您需要沿着孔的边界找到顶点并对多边形进行三角剖分)并且必须更新相邻顶点的冗余度量。最后,您显然需要决定在某个时候停止此过程(允许的最小冗余)。

关于c++ - DEM 到 TIN 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20857937/

相关文章:

c++ - 设置 SO_RCVBUF 会减小窗口缩放因子

声明纯虚函数时 C++ LNK2001 错误

c++ - 函数省略结构

c++ - map 大小变为零并返回 NULL

c++ - 通过 MFC 中的函数更改控件的值?

c++ - 使用constexpr成员函数初始化constexpr成员变量

C++:如何将结果从一个类传递到另一个类?

c++ - 在 vector 使用中找不到 fatal error

c++ - 实例化类模板的可变成员函数模板

c++ - 如何在构建单线程库时删除 pthread undefined reference