我有以下代码绘制正弦波。 看下面的代码:
float x, y;
float prevX=0.0, prevY=0.0;
int numOfWaves = 6;
float angle = 0;
void setup()
{
size(360, 360);
background(0);
smooth();
stroke(255);
}
void draw()
{
translate(0, height/2);
scale(1, -1);
for(int count=0; count < 360; ++count){
x = count;
angle = radians(count);
y = sin(angle*(numOfWaves/2.0));
y = map(y,-1,1,-height/2,height/2);
line(prevX, prevY, x, y);
prevX = x;
prevY = y;
}
prevX = prevY = 0.0;
}
但我希望正弦的频率随着距离的增加而增加。 这是我得到的当前正弦波:
我该怎么做?
答案 0 :(得分:1)
您知道如何绘制sin(2*π*f*t)
。
“唧唧”的频率本身就是时间的函数:
y(t) = A*sin(2*π*f(t)*t)
f(t)
可以是线性,二次或其他任何选择。