我正在创造一个简单的雪模拟,但我在数学上失败了。基本上,当雪花被初始化时,它的x位置被随机地设置在svg画布上的某个地方。然后,从那里,它直接下降。它应该模拟正弦波(x坐标应该像正弦波一样移动)。
从去年起我就没做过三角旅行了,所以我有点生疏了。Math.sin()的弧度,我相信,所以我乘以180,然后除以π转换成度?
假设x是雪花的当前x位置,宽度是画布的宽度。
x += (Math.sin(((x/width)*(180/Math.PI)))*width)挺管用的,但到处都是。我对我在做什么有一个模糊的概念,但我似乎无法把数学从我的大脑推到代码上。
我做错什么了?
发布于 2014-07-24 21:46:50
它应该是:
x += A*Math.sin(F*(y/Height)*2*Math.PI);其中A是振幅,即你想让薄片左移和右移的像素数(请注意,总移位将是2*A)。F是频率,或者你想让片片向左和向右移动的频率(我会把它随机设置在每片2到10之间)。
https://stackoverflow.com/questions/24944416
复制相似问题