随着频率处理的增加,绘制正弦波

时间:2017-04-30 23:14:55

标签: math processing frequency

我有以下代码绘制正弦波。 看下面的代码:

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;
}

但我希望正弦的频率随着距离的增加而增加。 这是我得到的当前正弦波:

enter image description here

但我想让它看起来像这样: enter image description here

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您知道如何绘制sin(2*π*f*t)

“唧唧”的频率本身就是时间的函数:

y(t) = A*sin(2*π*f(t)*t)

f(t)可以是线性,二次或其他任何选择。