《代码本色》processing编程练习

第0章 引言

通过构建walker类,创建两个walker对象,实现两个圆点的随机移动,以模仿笔墨的扩散。
在这里插入图片描述
代码如下:

class Walker{

  int x;

  int y;

  Walker(){

    x=width/2;

    y=height/2;

  }

  void display(){

    stroke(100,50,200);

    ellipse(x,y,1,1);

  }

  void step()

  {

    int stepx=int(random(3))-1;

    int stepy=int(random(3))-1;

    x+=stepx;

    y+=stepy;

  }

}

Walker w,h;

void setup()

{

  size(640,360);

  w=new Walker();

  h=new Walker();

  background(255);

}

void draw()

{

  w.step();

  h.step();

  w.display();

  h.display();

}

第1章 向量

综合运用向量的加减法、乘除法、计算单位长度、单位化向量、速度与加速度,创建Movers【】对象数组,实现Movers集合朝着鼠标移动位置聚集。
在这里插入图片描述

代码如下:



class Mover {

  PVector position;

  PVector velocity;

  PVector acceleration;

  float topspeed;

  Mover() {

    position = new
PVector(random(width),random(height));

    velocity = new PVector(0,0);

    topspeed = 5;

  }

  void update() 

  {

    PVector mouse = new PVector(mouseX,mouseY);

    acceleration = PVector.sub(mouse,position);

    acceleration.normalize();

    acceleration.mult(0.2);

    velocity.add(acceleration);

    velocity.limit(topspeed);

    position.add(velocity);

  }

  void display() 

  {

    stroke(0);

    strokeWeight(2);

    fill(200,100,100);

    ellipse(position.x,position.y,50,50);

 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值