填充表面网格的算法

问题描述 投票:0回答:1

我有一个描述封闭表面网格的点云。我想由此创建一个体积网格:因此我必须在这个“表面点云”内附加一些点。到目前为止,我使用一种谢尔宾斯基算法:

  1. 从所有点的中点开始
  2. 随机选择一个表面点
  3. 在点 (1) 和 (2) 之间的连接线的一半处创建新点
  4. 从 (1) 处重新开始,但将新点 (3) 作为第一个点

问题:当我对所有点进行三角测量时,许多角度太大(ANSYS 无法使用此数据集)。 有谁知道在表面网格内创建点的好算法,以便三角测量后的角度不会太大?

python algorithm volume mesh
1个回答
1
投票

我认为你错误地处理了这个问题

  • 但我可能误解了你的问题
  • 您有点云并且想要三角网格
  • 你不能随意添加积分......这只会让事情变得复杂
  • 而是找到周长多边形
  • 然后对其使用三角测量

最近我正在解决非常类似的问题。

  • 这里:https://stackoverflow.com/a/21884021/2521214
  • 它正在寻找点云中的孔并创建周边多边形
  • 除非孔非常小或与其他孔嵌套,否则它可以正常工作而不会出现伪影
  • 您需要调整 H、V 线扫描以满足您的需求(或将地图[][]倒置)
  • 只在地图上找到点而不是洞

在此之后,您只需使用任何三角测量...

  • 或者自己制作
  • 因为你有 H、V 线中的凸/凹边界信息(重复标志)
  • 如果单行或单列上有更多行,那么 1 行具有相同的孔 id
  • 然后你必须解剖网格以获得凸多边形
© www.soinside.com 2019 - 2024. All rights reserved.