两个网格系统的叠加算法 [英] The Algorithm to Overlay of Two Mesh Systems

查看:171
本文介绍了两个网格系统的叠加算法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个网格系统,由Delaunay三角网组成。可以将其视为三角形不规则网络(TIN)。

我可以想到的用于增加或减少两个TIN( t1 t2 )可以总结如下:


  1. 查找两个TIN的叠加(或剪辑)

  2. 对于叠加中的每个点,找到由两个TIN产生的 z1 z2

  3. 为覆盖图中的所有点开发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:

  1. Find the overlay ( or clip) of two TINs
  2. For each point in the overlay, find the z1 and z2 resulted from the two TINs.
  3. Develop a Delaunay Triangulation for all the points in the overlay, and then use the z1 and z2 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆