我在 2D 中实现了一个 vector 网格(实际上是在 Obj-C 中,但我猜它并不真正依赖于语言),例如,我可以用 Simplex 噪声填充它,以生成粒子的流场。
我一直在搜索和谷歌搜索很多,但由于我不是数学专家,我找不到用涡流(或至少是圆形)流场填充我的网格的方法。
对于圆流,我考虑从从外部网格线到内部网格线的圆的切线获取我的 vector 。
但是,对于漩涡,我自己就是找不到任何解决办法。
漩涡应该是对称的并在我的网格中居中,但是如果有一种简单的方法可以使它在同一网格中不对称,那么...
场上还有一些问号。但如果我没猜错,那就是你想要的速度场。换句话说,每个顶点的速度。对于圆形场,你只需要取正交相对位置 vector 来创建一个圆形场。
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
有很好的值(value),可能相当低。
我是一名优秀的程序员,十分优秀!