【p5.js】genuary2025.15 Design a rug【作品No.18】

【p5.js】genuary2025.15 Design a rug【作品No.18】
  • URLをコピーしました!

この記事を書いた人

ワタタク(Watataku)
  • クリエイティブコーダー / アーティスト
  • 「人の心に寄り添う、機能するアート」を探究しています
  • アートとテクノロジーが、社会や個人のウェルビーイングにどう貢献できるかに、関心があります

目次

【p5.js】genuary2025.15 Design a rug【作品No.18】

【p5.js】genuary2025.15 Design a rug【作品No.18】
let colors = ["#4e9f99", "#f5deb3"]; // ブルーとベージュの色

function setup() {
  createCanvas(400, 400);
  angleMode(DEGREES);
  background("#d6e0f0");  // ブルーグレーの背景色
}

function draw() {
  // キャンバスを4分割
  let halfWidth = width / 2;
  let halfHeight = height / 2;

  // 中央に大きな模様を描く
  push();
  translate(width / 2, height / 2);
  scale(0.6);  // 大きさを調整
  drawCarpet();
  pop();
  
  // 上
  push();
  translate(width / 2, halfHeight / 2);
  scale(0.5);
  drawCarpet();
  pop();

  // 下
  push();
  translate(width / 2, height - halfHeight / 2);
  scale(0.5);
  drawCarpet();
  pop();

  // 左
  push();
  translate(halfWidth / 2, height / 2);
  scale(0.5);
  drawCarpet();
  pop();

  // 右
  push();
  translate(width - halfWidth / 2, height / 2);
  scale(0.5);
  drawCarpet();
  pop();
  
  // 左上
  push();
  translate(halfWidth / 2, halfHeight / 2);
  scale(0.5); // 大きさを半分にする
  drawCarpet();
  pop();

  // 右上
  push();
  translate(width - halfWidth / 2, halfHeight / 2);
  scale(0.5);
  drawCarpet();
  pop();

  // 左下
  push();
  translate(halfWidth / 2, height - halfHeight / 2);
  scale(0.5);
  drawCarpet();
  pop();

  // 右下
  push();
  translate(width - halfWidth / 2, height - halfHeight / 2);
  scale(0.5);
  drawCarpet();
  pop();
  
  // 外枠を描く
  drawBorder();
}

function drawCarpet() {
  // 絨毯の模様を描く関数
  for (let i = 0; i < 360; i += 5) {
    push();
    rotate(i);
    
    // 四角形を積み重ねる
    for (let j = 0; j < 5; j++) {
      let r = 100 + sin(i * 2 + j * 72) * 50;
      let x = r * cos(j * 72);
      let y = r * sin(j * 72);
      
      // 指定された色を順に設定
      let colorIndex = (i / 5 + j) % colors.length;
      fill(colors[colorIndex]);
      noStroke();
      rect(x - 10, y - 10, 20, 20); // 四角形を描画
    }
    pop();
  }
}

function drawBorder() {
  noFill();
  strokeWeight(10);
  stroke("#4e9f99"); // 外枠の色を指定
  rect(5, 5, width - 10, height - 10); // 外枠を描画
}

作った感想

変わった模様の絨毯。子どもは円の中に入ったりして遊びそう。

個人的には微妙かな?と思ったけど、Xでは反応が少しあって嬉しい。

自分が微妙だなと思っても、投稿をしてみるのが大切。

ワタタク

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

ワタタク(Watataku)
クリエイティブコーダー/アーティスト
AIと共に、「人の心に寄り添う、機能するアート」を探究しています。

ここは、その思索と創造の全記録を記す、思考の実験室(アトリエ)です。

僕の創作の源泉は、人生経験そのものです。
不当な出来事や、精神的な支配の中で、私の心は何度も粉々に砕け散りました。しかし、その一つ一つの破片をどのようにすれば鮮やかな絵の具にできるかを考え、ゆっくり心のパレットに色を整えていきました。その、長い、長い、自身との対話の果てに「人の役に立つアートを作りたい」という考え方にたどり着きました。

かつて、僕の武器は、アコースティックギター弾き語りと、カメラでした。
オリジナルソングの演奏でお客様投票1位となった「物語の力」。
世界20カ国の旅で培った、多様な「視点」。

今、僕は、それら全ての経験を、「コード」という、新しい言語で、世界に問いかけています。

このブログでは、作品の制作過程や、日々の発見、そして、僕自身の上達の軌跡を記録していきます。

僕の旅が、あなたの日常を、ほんの少しでも豊かにするための、光になることを願って。

クリエイティブコーディングロード運営者 ワタタク
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次