【问题标题】:Is there a function to dilate/erode a mesh in meshlab?是否有在 meshlab 中扩张/侵蚀网格的功能?
【发布时间】:2020-02-15 07:58:32
【问题描述】:

我正在使用 3d 打印机创建宽墙(所有尺寸都 0.3 毫米太大),我还需要通过腐蚀来纠正 stl 文件。 meshlab 有这样的功能吗?

【问题讨论】:

    标签: meshlab


    【解决方案1】:

    有一种非常简单的方法可以实现扩张/侵蚀。使用过滤器 -> “Smoothing, fairing and Deformation” -> “Per Vertex Geometric Function” 并创建一个函数,将法线的值添加/减去每个顶点的坐标:

    x = x-nx
    y = y-nz
    z = z-nz
    

    如果您需要按给定因子进行侵蚀,只需将法线乘以该因子即可。

    x = x-0.3*nx
    y = y-0.3*nz
    z = z-0.3*nz
    

    【讨论】:

    • 谢谢,但是当一个顶点在一些角度面之间共享时会发生什么?沿每个面法线的平移将小于我认为需要的 0.3。
    【解决方案2】:

    另一种方法(速度较慢但拓扑更准确)是使用均匀网格重采样过滤器并指定正(负)偏移以获得扩张(侵蚀)效果。 在这种情况下,会创建一个新的近似网格,并且精度(和时间)取决于您设置的精度参数。

    【讨论】:

    • 但这会修改​​网格的拓扑结构。例如,我用均匀网格重采样扩展了一个二十面体(12 个顶点,20 个三角形),结果有 5520 个顶点和 11036 个三角形。此外,它将平滑每个边缘和顶点,因此它们将是平滑的。这可能是一种合意或不合意的效果。
    • 拓扑正确的膨胀(腐蚀)需要重新划分曲面。简单的例子:如果你扩张一个圆环,在某个点洞会消失......所以顶点的法线平移正确地适用于小偏移和/或“常规”简单形状。
    猜你喜欢
    • 2013-06-24
    • 1970-01-01
    • 2012-09-22
    • 1970-01-01
    • 2022-10-18
    • 2012-09-24
    • 2014-02-23
    • 2019-01-25
    • 1970-01-01
    相关资源
    最近更新 更多