【Processing】copy()を使ってみる(6)

 

ランダムの周期で、コピー元と範囲を設定する。

ペースト位置をパーリンノイズで動かす。

 

PImage aa;//写真のオブジェクト
int area = 500;
int sx = 0;
int sy = 0;
int x = 0;
int y = 0;
float nx =random(1);
float ny =random(1);
int lim = int(random(1, 50));

void setup() {
  size(800, 800);//キャンパスサイズ

  aa = loadImage("data/c.jpg");//画像をロードする
  image(aa, 0, 0, width, height);//画像を画面いっぱいに

  NNNset();
  frameRate(300);
}

void draw() {
  if (frameCount % lim == 0) {
    NNNset();
  }

  x = int(noise(nx)*width);
  y = int(noise(ny)*height);

  copy(sx, sy, area, area, 
    x, y, area, area);
  nx+=0.0001;
  ny+=0.0001;
}

void NNNset() {
  lim = int(random(1, 50));
  nx+=0.2;
  ny+=0.2;
  x = int(noise(nx)*width);
  y = int(noise(ny)*height);
  sx = x;
  sy = y;
  area = int(random(300, 600));
  println(lim, area);
}