【作品No.29】画像の上に描く【Processing 2025年1月28日】

【作品No.29】画像の上に描く【Processing 2025年1月28日】
  • URLをコピーしました!

この記事を書いた人

クリエイティブコーダー Watataku のプロフィール写真
ワタタク(Watataku)

上達の研究家 / アーティスト

「才能」ではなく「論理(システム)」で、人の心を動かす機能するアートを探究中

【文系・36歳・未経験】から独学でクリエイティブコーディングに挑戦し、独自の思考法で以下の実績を達成

  • 開始1年8ヶ月目までに公募6つに挑戦し、3つ入選(勝率50%)
  • 開始1年9ヶ月目に、虎ノ門ヒルズ ステーションタワー49階 スカイガーデン&プールのために制作した作品が展示される
目次

作品の画像とコード

【作品No.29】画像の上に描く【Processing 2025年1月28日】
PImage img;
ArrayList<PVector> points = new ArrayList<PVector>();

void setup() {
  size(600, 600); // ウィンドウのサイズを設定
  img = loadImage("main.jpg"); // 画像を読み込む
  img.resize(600, 600); // 画像を600x600ピクセルにリサイズ
  stroke(0); // 描画する線の色を黒に設定
}

void draw() {
  background(255); // 背景を白に設定
  image(img, 0, 0); // 画像をウィンドウに描画
  
  for (PVector point : points) {
    drawLissajous(point.x, point.y);
  }
}

void mouseClicked() {
  points.add(new PVector(mouseX, mouseY)); // ドラッグした位置情報を保存
}

void drawLissajous(float offsetX, float offsetY) {
  int a = 5; // X方向の周波数
  int b = 4; // Y方向の周波数
  float delta = PI / 2; // 位相差
  float scale = 50; // スケール(大きさ)調整

  beginShape();
  for (float t = 0; t < TWO_PI; t += 0.01) {
    float x = scale * sin(a * t + delta) + offsetX;
    float y = scale * sin(b * t) + offsetY;
    vertex(x, y);
  }
  endShape(CLOSE);
}

作った感想

画像の上に描いたことがなかったので、作ってみました。

工夫すればもっと面白いことができそうです。

ワタタク

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

ワタタク(Watataku)
上達の研究家
アナログ絵画(2025.11~) × クリエイティブコーディング(2024.3~)

「不完全な人間(Analog)」が、「完全な論理(Algorithm)」を武器にどこまで行けるか。

手描きの一本の線(One)をコードで無限(All)に拡張し、再び一つの作品へ定着させる。「才能」ではなく「発見」と「システム」で描く、人生をかけた実験記録。

溢れる思考を、独自の脳内OS「Watataku Blueprint」で整理し、初心者から世界で活躍するまでの「激闘」と「攻略本」を公開しています。

▼【創作×上達】思考を「作品」に変える、モレスキン6冊の運用設計図
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次