两个网格系统的叠加算法 [英] The Algorithm to Overlay of Two Mesh Systems
问题描述
我可以想到的用于增加或减少两个TIN( t1
和
t2
)可以总结如下:
- 查找两个TIN的叠加(或剪辑)
- 对于叠加中的每个点,找到由两个TIN产生的
z1
和z2
。 - 为覆盖图中的所有点开发Delaunay三角剖分,然后使用
z1
和z2
信息,因此可以为每个三角形创建一个四面体。
问题是,是否有任何现有的C ++或C#库已经实现了这个(或者这个变体)?
一个优雅的解决方案是在网格上执行布尔操作(联合,添加等)。布尔运算在三角网格上定义得相当好。实现这些功能的最好的库是 GNU Triangulated Surface Library 。
I have two systems of mesh, which are consist of Delaunay Triangulation. One can view this as a Triangulated Irregular Network (TIN).
The algorithm I can think of for adding or subtracting two TINs ( t1
and t2
) can be summarized as follows:
- Find the overlay ( or clip) of two TINs
- For each point in the overlay, find the
z1
andz2
resulted from the two TINs. - Develop a Delaunay Triangulation for all the points in the overlay, and then use the
z1
andz2
information above, one can thus create a tetrahedral for each triangle.
The question is, is there any existing C++ or C# library that already implement this ( or a variant of this)?
An elegant solution is to perform boolean operations (union, add etc) on the meshes. Boolean operations are fairly well defined on triangular meshes. The best library that implements these is the GNU Triangulated Surface Library.
这篇关于两个网格系统的叠加算法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!