Jos*_*osa 2 javascript math trigonometry canvas snap.svg
我正在努力创建一个简单的雪模拟,但我在数学上严重失败。基本上,当雪花初始化时,它的 x 位置是在 svg 画布上的某个位置随机设置的。然后从那里,它直线下降。它应该模拟正弦波(x 坐标应该像正弦波一样移动)。
从去年开始我就没有做过三角函数了,所以我有点生疏了。Math.sin()我相信需要弧度,所以我乘以 180,然后除以 pi 来转换为度数?
假设 x 是雪花的当前 x 位置,宽度是画布的宽度。
x += (Math.sin(((x/width)*(180/Math.PI)))*width)
Run Code Online (Sandbox Code Playgroud)
它确实有效,但到处都是。我对自己在做什么有一个模糊的想法,但我似乎无法将数学从大脑中转化为代码。
我做错了什么?
它应该是:
x += A*Math.sin(F*(y/Height)*2*Math.PI);
Run Code Online (Sandbox Code Playgroud)
其中A是振幅,即您希望薄片左右移动多少像素(请注意,总移动将为 2*A)。F 是频率,或者你希望薄片左右移动的频率(我将每个薄片随机设置在 2 到 10 之间)。