Javascript 正弦函数在P5.js中改变对象高度

Javascript 正弦函数在P5.js中改变对象高度,javascript,processing,trigonometry,p5.js,Javascript,Processing,Trigonometry,P5.js,我在P5.js中有一个草图,接近预期的效果,只是我不知道如何控制周期或波长。正如您将看到的,如果运行代码,动画将创建长的扫描波,但我希望能够基于参数设置波长。这只是一个编码练习-任何帮助都将不胜感激 注意,代码不是直接在S.O.上运行的,但可以在此处运行 var arr=[]//包含矩形的数组 直肠变位//绘制的矩形数 var xPos;//矩形的水平位置 var yPos;//矩形的垂直位置 var w=5;//矩形宽度 变量h;//矩形高度 var=4//栏间距 var振幅=40; 无功频

我在P5.js中有一个草图,接近预期的效果,只是我不知道如何控制周期或波长。正如您将看到的,如果运行代码,动画将创建长的扫描波,但我希望能够基于参数设置波长。这只是一个编码练习-任何帮助都将不胜感激

注意,代码不是直接在S.O.上运行的,但可以在此处运行

var arr=[]//包含矩形的数组
直肠变位//绘制的矩形数
var xPos;//矩形的水平位置
var yPos;//矩形的垂直位置
var w=5;//矩形宽度
变量h;//矩形高度
var=4//栏间距
var振幅=40;
无功频率=2;
函数设置(){
createCanvas(1000400);
角度模式(度);//减慢动画速度(可能是问题?)
rectNum=floor(宽度/(w+rPadding));//将数组大小限制为画布的宽度
yPos=高度*.6;//将对象放置在垂直中心
对于(变量i=0;i}
在处理过程中,必须以度为单位设置函数的参数

如果在所有
对象上分布360度(分布在
arr.length
上),则将生成一条完整的正弦曲线:

this.move=函数(i){
var alpha=360.0*i/arr.length;
该高度=sin(α)*振幅+(振幅*2);
}
波频率为
1.0/波长
。这意味着角度必须除以波长

e、 g.4正弦曲线可以通过
波长=0.25
生成

var波长=0.25;
this.move=函数(i){
var alpha=360.0*i/arr.length;
this.height=sin(帧数*频率+α/波长)*振幅+(振幅*2);
}
var arr=[]//包含矩形的数组
直肠变位//绘制的矩形数
var xPos;//矩形的水平位置
var yPos;//矩形的垂直位置
var w=5;//矩形宽度
变量h;//矩形高度
var=4//栏间距
var振幅=40;
无功频率=2;
函数设置(){
createCanvas(600300);
角度模式(度);//减慢动画速度(可能是问题?)
rectNum=floor(宽度/(w+rPadding));//将数组大小限制为画布的宽度
yPos=高度*.6;//将对象放置在垂直中心
对于(变量i=0;i

您的代码已经有了控制振幅和频率的变量。改变这些很好。我不明白你在问什么?@KevinWorkman不,公式不完整。至少
i
必须乘以一个波频率或除以一个波长。再次感谢您,这非常有效。我知道这个公式是不完整的,你对数学的解释和代码更正都很清楚。