我正在尝试使用Gerstner波函数在OpenGL中实现圆形波:
它工作正常,但我的所有地面都变形了更多波浪,我想要的只是从中心传播到外部的单一波浪。我试图修改sqrt(x*x + y*y)
在两个圆之间的点的z位置,以限制波的边界。两个圆圈的第一个圆圈的半径为wavelength * time
,第二个圆圈的半径为wavelength * (time + 1)
,但这仍然不够好,因为圆圈的扩展速度比波浪的速度慢
答案 0 :(得分:1)
当您按wavelength * time
计算边界时,您假设波前以等于波长的速度移动;在1个单位时间之后,波前将在您的计算中移动wavelength
个单位。
尝试使用您用来计算$ \ varphi $而不是wavelength
的波速。