我正在尝试在 C++ 中实现一个用于流体模拟的基本水平集程序,并使用 SFML 对其进行可视化,到目前为止,我有以下用于传播圆形曲线的简单程序:
https://gist.github.com/BhayakMoth/da8250c849aeead098a61afbf655fb76
但是,我不确定这是否正确。
由于我使用的是 128×128 网格,因此网格的分辨率可能不够,因此在我当前的代码中无法跟踪 phi(x,y) = 0 处的曲线。为了解决这个问题,我尝试定义像 |phi(x,y)| 这样的边界。< C,但我不会一直得到连续曲线,除非 C 为 0.6-0.9,这可能是不准确的。是否有另一种方法来实现 Level Set 或者我该如何改进?