使用JavaScript绘制正弦波
我正在努力创建一个简单的雪模拟,但我在数学上失败得很惨。基本上,当雪花被初始化时,它的x位置在svg画布上的某个地方被随机设置。然后从那里,它直线下降。它应该模拟正弦波(x坐标应该像正弦波一样移动) 我从去年开始就没玩过三角游戏,所以我有点生疏了使用JavaScript绘制正弦波,javascript,math,canvas,snap.svg,trigonometry,Javascript,Math,Canvas,Snap.svg,Trigonometry,我正在努力创建一个简单的雪模拟,但我在数学上失败得很惨。基本上,当雪花被初始化时,它的x位置在svg画布上的某个地方被随机设置。然后从那里,它直线下降。它应该模拟正弦波(x坐标应该像正弦波一样移动) 我从去年开始就没玩过三角游戏,所以我有点生疏了Math.sin()取我相信的弧度,所以我乘以180,然后除以π转换成度 假设x是雪花的当前x位置,宽度是画布的宽度 x += (Math.sin(((x/width)*(180/Math.PI)))*width) 这有点奏效,但到处都是。我对自己正在
Math.sin()
取我相信的弧度,所以我乘以180,然后除以π转换成度
假设x是雪花的当前x位置,宽度是画布的宽度
x += (Math.sin(((x/width)*(180/Math.PI)))*width)
这有点奏效,但到处都是。我对自己正在做的事情有一个模糊的概念,但我似乎无法将大脑中的数学知识转化为代码
我做错了什么?应该是:
x += A*Math.sin(F*(y/Height)*2*Math.PI);
其中A
是振幅,即希望薄片向左和向右移动的像素数(请注意,总移动量为2*A)。F是频率,或者您希望薄片向左和向右移动的频率(我将每个薄片随机设置为2到10)。应该是:
x += A*Math.sin(F*(y/Height)*2*Math.PI);
其中A
是振幅,即希望薄片向左和向右移动的像素数(请注意,总移动量为2*A)。F是频率,或者说你希望雪花左右移动的频率(我将每个雪花随机设置为2到10)