我在2D中实现了矢量的网格(实际上是在Obj-C中,但我猜它并不是真正依赖于语言)我可以用Simplex噪声来填充,例如,生成一个粒子的流场。
我一直在四处寻找和谷歌搜索,但由于我不是数学专家,我找不到用涡旋(或至少是圆形)流场填充网格的方法。
对于圆形流动,我想到了从圆形切线到外部网格线的矢量得到我的矢量。
但是,对于漩涡我自己找不到任何解决方案。
涡旋应该是对称的并且在我的网格中居中,但是如果有一种简单的方法可以使它在同一网格中不对称,那么......
答案 0 :(得分:1)
该领域仍有一些问题。但是,如果我找到你,那么它就是你想要的速度场。换句话说,每个顶点的速度。 对于圆形场,您只需要采用正交相对位置矢量来创建一个圆形场。
v_t = (Py-Ry,Rx-Px)
其中P
是顶点的位置,R
是字段的中心。后缀x和y只是相应的坐标。
要向速度场添加径向分量,只需在径向方向上添加一些速度。我无法判断你在模拟时是否会保持稳定。
径向很容易描述为
v_r = (Rx-Px,Ry-Py)
和使用
v = a*v_r+(1-a)*v_t
具有a
的良好价值,可能相当低。