【Processing】ドット絵をかくやつ2

f:id:osushi_94:20181212141521p:plain
Finderを見て描いた


f:id:osushi_94:20181212123218p:plain
マウスカーソルを見て描いた


f:id:osushi_94:20181212120201p:plain
Appleロゴを見て描いた



94.hatenadiary.jp


続き。
保存する機能を追加した。絵もなんこか描いた。
この解像度だと描けるモチーフが限られてるし、

無理してこの解像度でモチーフを見ようとする。
見る力と抽象化する力が鍛えられるので、良いトレーニングになるかも。


int[] rectX = new int[10]; //配列、xの数値に使います
int[] rectY = new int[10]; //配列、yの数値に使います
color[][] c = new color[10][10]; //二次元配列

void setup() {
  size(500, 500);
  background(200);
  noStroke();
  for (int x = 0; x < 10; x++) {
    for (int y = 0; y <10; y++) {
      rectX[x] = x*50 + 25; //forループの変数を計算に使う
      rectY[y] = y*50 + 25; //
      c[x][y] = color(255); //色の初期値です
    }
  }
}

void draw() {
  for (int x = 0; x < 10; x++) { //行になります
    for (int y = 0; y < 10; y++) { //列になります。

      fill( c[x][y]);      //指定した色で四角を書きます
      rectMode(CENTER);
      rect(rectX[x], rectY[y], 50, 50);
    }
  }
}


//マウスクリックした時
void mousePressed() {
  for (int x = 0; x < 10; x++) { //行
    for (int y = 0; y < 10; y++) { //列
      //マウスが四角形の上だったら
      if (25 > dist(rectX[x], rectY[y], mouseX, mouseY)) {
        if (c[x][y] == color(255)) {        //白のとき
          c[x][y] = color(125);             //グレーに変える
        } else if(c[x][y] == color(125)){   //グレーのとき
          c[x][y] = color(0);               //黒にする
        } else if(c[x][y] == color(0)){     //黒のとき
          c[x][y] = color(255);             //白にする
        }
      }
    }
  }
}

//キーを押した時実行する
void keyPressed() {
  if (key == ' ') { //スペースだったら
    save("dot.png"); //pngで保存する
  }
}