书名:代码本色:用编程模拟自然系统
作者:Daniel Shiffman
译者:周晗彬
ISBN:978-7-115-36947-5
目录

3.8 波

1、波

  • 当我们用正弦函数让一个圆在屏幕上做上下振荡运动时,实际上是让一个点沿着x轴上的波形轨迹运动。
  • 现在,我们只需要加入一个for循环,就能让一串圆互相间隔地散布在x轴上做振荡运动,形成一个波形。
  • 这样的波形可以用来模拟生物体的外形和质地柔软的表面(比如水面)。

2、遍历

  我们要遍历x轴上的值,并在这些位置上画波形对应的点。假设遍历间隔是24个像素,在遍历的循环中,我们要做3件事:

  • 1.根据振幅和角度的正弦值计算y坐标;
  • 2.在(x,y)位置画一个圆;
  • 3.根据角速度递增角度。

  我们还可以再引入一个角度变量,用它表示整个波形的起始角度,这个角度(用startAngle表示)也根据角速度递增。

3、示例

示例代码3-9 波形

float startAngle = 0;
float angleVel = 0.23;

void setup() {
  size(640,360);
}

void draw() {
  background(255);

  startAngle += 0.015;
  float angle = startAngle;

 for (int x = 0; x <= width; x += 24) {
    float y = map(sin(angle),-1,1,0,height);
    stroke(0);
    fill(0,50);
    strokeWeight(2);
    ellipse(x,y,48,48);
    angle += angleVel;
  } 

}

4、运行结果

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容