【p5.js】genuary2025.1.16 Generative palette【作品No.19】

【p5.js】genuary2025.16 Generative palette【作品No.19】
  • URLをコピーしました!
この記事を書いた人
ワタタク
  • クリエイティブコーディング関連情報と、上達過程の記録を発信中
  • コンセプトは「クリエイティブコーディング1万時間の歩き方」
  • 2024年にProcessingの構文のアウトプットを終え、2025年から作品制作開始(クリエイティブコーディングで作成した作品集

目次

作品の画像とコード

【p5.js】genuary2025.16 Generative palette【作品No.19】

アニメーション。

// 参考にさせていただいたページとURL
// 生成花
// https://editor.p5js.org/Omnis/sketches/_q9ZmS76s


let c = ["#fe218b", "#fed700", "#21b0fe"];
let cols = 3;
let rows = cols;
let cellW, cellH;

function setup() {
  createCanvas(600, 600);
  angleMode(DEGREES);
  background("#F2EDEC");
  frameRate(1);

  cellW = width / cols;
  cellH = height / rows;
}

function draw() {
  background("#F2EDEC");

  for (let i = 0; i < cols; i++) {
    for (let j = 0; j < rows; j++) {

      let x = i * cellW;
      let y = j * cellH;

      push();
      translate(x + cellW / 2, y + cellH / 2);
      
      stroke(random(c));

      let dc1 = random(1, 6);
      let dc2 = random(1, 6);
      let dc3 = random(1, 6);
      let dc4 = random(1, 6);
      
      let d = cellW / 2;
      let sw = random(2, cellW / 3);
      
      noFill();
      
      if (random(100) < 50) {
        drawingContext.setLineDash([dc1, dc2, dc3, dc4]);
        strokeCap(SQUARE);   
        strokeWeight(sw);
        rect(-d / 2, -d / 2, d, d);
      } else {
        strokeWeight(sw / 1.3);      
        drawingContext.setLineDash([1, sw * random(1, 1)]);
        strokeCap(SQUARE);        
        rect(-d / 2, -d / 2, d, d);
        noStroke();
        fill(random(c));
        rect(-d / 6, -d / 6, d / 3, d / 3); 
      }
      
      pop();
    }
  }
}

作った感想

アニメーションで、数秒ごとに形が変わるってのをやりたかったので、できて良かったです。

面白いですね。

ワタタク

それでは今日もレッツワクワクコーディング。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次