見出し画像

generativeart_039


// 作品概要:
// Zendoodle
// (C)2024 sakuzo_arts

// Global変数
String APPNAME = "generativeart_039";

// セットアップ
void setup() {
  size(800, 800);
  noLoop();
}

// 描画
void draw() {
  // 背景色設定
  background(255, 255, 255);
  noFill();
  noStroke();

  // 描画処理
  drawpPttern(5);

  // フッター表示
  drawFooter();
}

// パターンを描画する関数
void drawpPttern(int PIECE_NUMBER) {

  // 各ピースの幅と高さ
  float PIECE_WIDTH = width / PIECE_NUMBER;
  float PIECE_HEIGHT = height / PIECE_NUMBER;

  // 各ピースの描画
  for (float i = 0; i <= PIECE_NUMBER; i = i + 1) {
    for (float j = 0; j <= PIECE_NUMBER; j = j + 1) {
      float PIECE_CORNER_R = 10;
      float PIECE_X = PIECE_WIDTH * i;
      float PIECE_Y = PIECE_HEIGHT * j;

      // 座標情報を保存
      pushMatrix();

      // キャンバスの中心を移動する
      translate(PIECE_X, PIECE_Y);

      // 四角ピース
      fill(255, 255, 255);
      rect(0, 0, PIECE_WIDTH, PIECE_HEIGHT, PIECE_CORNER_R);

      // ピース内の線
      for (float n = PIECE_WIDTH; n >= 0; n = n - 20) {
        fill(255/PIECE_WIDTH*n ,255/PIECE_WIDTH*n, 255/PIECE_WIDTH*n);
        stroke(128, 128, 128);
        strokeWeight(2);
        rect(0, 0, n, n);
      }
      
      // 保存していた座標情報を呼び出し
      popMatrix();
      
    }
  }
}

// フッターを表示する関数
void drawFooter() {
  // 長方形の描画方法をデフォルトに戻す
  rectMode(CORNER);

  // 長方形を背景として描画する
  noStroke();
  fill(255, 255, 255, 192);
  rect(0, height - 45, width, 45);

  // 作品名
  textAlign(LEFT, BOTTOM);
  textSize(20);
  fill(64);
  text(APPNAME, 30, height - 10);

  // 著作権表示
  textAlign(RIGHT, BOTTOM);
  textSize(20);
  fill(64);
  text("(C)2024 sakuzo_arts", width - 30, height - 10);
}

// キー操作でイベントを実行する関数
void keyPressed() {
  // スペースキーを押下で再描画
  if (key == ' ') {
    redraw();
  }

  // Shift+sキーを押下で画像保存
  if (key == 'S') {
    int Y = year();
    int M = month();
    int D = day();
    int h = hour();
    int m = minute();
    int s = second();
    String FILENAME = APPNAME + "-" + Y + nf(M, 2) + nf(D, 2) + nf(h, 2) + nf(m, 2) + nf(s, 2);
    saveFrame(FILENAME + ".png");
  }
}

この記事が気に入ったらサポートをしてみませんか?