【作品71】ピクセル化した画像の中に、三角をいれる

【作品71】ピクセル化した画像の中に、三角をいれる
  • URLをコピーしました!
この記事を書いた人
ワタタク
  • クリエイティブコーディングで制作した作品と、上達のためにやったこと・学習過程を発信
  • コンセプトは「クリエイティブコーディング1万時間の歩き方」
  • 2024年にProcessingの構文のアウトプットを終え、2025年から作品制作開始(クリエイティブコーディングで作成した作品集

目次

作品の画像とコード

PImage img;
float pixelSize = 50; // ピクセルサイズ(固定)

void setup() {
  size(1080, 1080);
  frameRate(60);
  smooth();

  // 画像をロード
  img = loadImage("6.jpg"); // 使用する画像ファイル名を適切に変更してください
}

void draw() {
  background(0);

  // 画像を描画
  drawImageWithShapes(img, pixelSize);
}

void drawImageWithShapes(PImage img, float pixelSize) {
  PImage resizedImg = img.copy();
  resizedImg.resize(width, height); // 画像サイズを画面サイズに合わせる

  for (int y = 0; y < height; y += int(pixelSize)) {
    for (int x = 0; x < width; x += int(pixelSize)) {
      color c = resizedImg.get(x, y); // 画像から色を取得
      fill(c);
      noStroke();
      
      // 四角形を描画
      rect(x, y, pixelSize, pixelSize); 
      
      // 三角形を描画(四角形の中心付近に配置)
      fill(255, 255, 255, 150); // 半透明の白い三角形
      float centerX = x + pixelSize / 2;
      float centerY = y + pixelSize / 2;
      
      // ランダムな向きの三角形を描画
      triangle(
        centerX, centerY - pixelSize * 0.3, // 上の頂点
        centerX - pixelSize * 0.3, centerY + pixelSize * 0.3, // 左下の頂点
        centerX + pixelSize * 0.3, centerY + pixelSize * 0.3  // 右下の頂点
      );
    }
  }
}
ワタタク

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

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