我正在努力创建一个简单的雪模拟,但我在数学上失败了。基本上,当雪花被初始化时,它的x位置是在svg画布上的某个地方随机设置的。然后从那里,它直接下降。 应模拟正弦波(x坐标应像正弦波一样移动)。
自去年以来,我还没有完成触发,所以我有点生疏了。我相信Math.sin()
需要弧度,所以我乘以180,然后除以pi以转换为度数?
假设x是雪花的当前x位置,width是画布的宽度。
x += (Math.sin(((x/width)*(180/Math.PI)))*width)
它有点工作,但它到处都是。我对我正在做的事情有一个模糊的概念,但我似乎无法将数学从我的大脑推向代码。
我做错了什么?
答案 0 :(得分:3)
应该是:
x += A*Math.sin(F*(y/Height)*2*Math.PI);
其中A
是幅度,即你想让薄片左右移动多少像素(注意总移位为2 * A)。 F是频率,或者您希望薄片左右移动的频率(我会在每个薄片的2到10之间随机设置)。