gpt4 book ai didi

c++ - 在标量场上行进立方体期间的插值问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:52:32 25 4
gpt4 key购买 nike

我有一个规则的正方形网格,其中所有数据点都存储在质心处。我有一个标量场(范围:0-> 1),表示细胞内物质的数量。我有兴趣识别这种物质在细胞内的界面(用于进一步处理,而不是用于可视化)。

我遇到了行进立方体算法(http://paulbourke.net/geometry/polygonise/)。在这里,我需要单元格角上的值。所以我平均了相邻单元格的质心值。在 MC 中的“多边形化”过程中,这种求平均与进一步线性化相结合以找到交点的结果是这样的非现实界面。

enter image description here

这里的灰色细胞充满了物质,而它的邻居只有最少的物质。理想情况下,这应该非常接近 celtre 单元格的边界。我觉得这是由于 0.25 和 0 之间的线性插值导致它远离预期位置而发生的。

可以做些什么来解决这个问题吗?

最佳答案

Marching-Cubes-algorithm 有一个参数可以调整,即isolevel。在您的示例中,您似乎为 isolevel 选择了一个大约 0.05 的值。 When choosing a value just below 0.25 (e.g. something like 0.24) the interfaces will be much closer to the center cell.但是当两个值为 1 的单元格相互接触时,您仍然会得到不令人满意的结果 s.t.角的平均值为 0.5

您还可以尝试:您可以取角值的最大单元值并将 isolevel 提高到刚好低于 1 的值,而不是计算角点值的单元格值的平均值(例如 0.9)。

关于c++ - 在标量场上行进立方体期间的插值问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55155586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com