增加网格细节(附加镶嵌)
Increasing mesh details (additional tesselation)
我有以下问题(作为另一个问题的解决方案的一部分:))。我有一个三角网格,上面标有一些三角形。需要将标记的三角形分成四个较小的三角形,如下所示:
/\ /\
/ \ /__\
/ \ --> /\ /\
/______\ /__\/__\
标记三角形的拆分导致也需要拆分与标记三角形相邻的三角形(一个被标记,另一个刚好相邻,最后一个保持完整):
____ ____
/\ |\ /\ /|\
/ \ | \ /__\/ | \
/ \ | \ --> /\ /\ | \
/______\|___\ /__\/__\|___\
是否有一些 C/C++ 库可以用于它?此外,保留邻接数据也很有用,因此最好在拆分后更新该邻接数据。如果它提供了一个方便的接口来处理那种数据(三角形、邻接),那会很好,即使库不能完成这项工作。
查看 VTK C++ 库。
它有一个 class vtkPolyData 可以处理您提到的操作。要检查的特定成员函数:
- InsertNextLinkedCell
- 插入下一个链接点
- 替换LinkedCell
阅读链接的文档页面以了解如何使用它。 class 可用于任何类型的单元格,而不仅仅是三角形。但是你可以限制你只使用三角形。
我有以下问题(作为另一个问题的解决方案的一部分:))。我有一个三角网格,上面标有一些三角形。需要将标记的三角形分成四个较小的三角形,如下所示:
/\ /\
/ \ /__\
/ \ --> /\ /\
/______\ /__\/__\
标记三角形的拆分导致也需要拆分与标记三角形相邻的三角形(一个被标记,另一个刚好相邻,最后一个保持完整):
____ ____
/\ |\ /\ /|\
/ \ | \ /__\/ | \
/ \ | \ --> /\ /\ | \
/______\|___\ /__\/__\|___\
是否有一些 C/C++ 库可以用于它?此外,保留邻接数据也很有用,因此最好在拆分后更新该邻接数据。如果它提供了一个方便的接口来处理那种数据(三角形、邻接),那会很好,即使库不能完成这项工作。
查看 VTK C++ 库。 它有一个 class vtkPolyData 可以处理您提到的操作。要检查的特定成员函数:
- InsertNextLinkedCell
- 插入下一个链接点
- 替换LinkedCell
阅读链接的文档页面以了解如何使用它。 class 可用于任何类型的单元格,而不仅仅是三角形。但是你可以限制你只使用三角形。