
目的は画像を使ったピクセルアートのアニメーションで値拡大させる位置を真ん中に変えること。
この記事を書いた人


- クリエイティブコーディングで制作した作品と、上達のためにやったこと・学習過程を発信
- コンセプトは「クリエイティブコーディング1万時間の歩き方」
- 2024年にProcessingの構文のアウトプットを終え、2025年から作品制作開始(クリエイティブコーディングで作成した作品集)
目次
作品の画像とコード


アニメーション。
1枚目の画像。
PImage img;
float pixelSize = 10; // 初期ピクセルサイズ (小数点)
float growthRate = 0.5; // サイズ変更の速さ
void setup() {
size(1080, 1080);
img = loadImage("22, Building, USA, New York.jpg");
img.resize(width, height);
frameRate(60); // スムーズな描画
smooth(); // アンチエイリアスを有効化
}
void draw() {
background(0);
// 中心点を計算
int centerX = width / 2;
int centerY = height / 2;
for (int y = -int(height / (2 * pixelSize)) * int(pixelSize);
y < int(height / (2 * pixelSize)) * int(pixelSize);
y += int(pixelSize)) {
for (int x = -int(width / (2 * pixelSize)) * int(pixelSize);
x < int(width / (2 * pixelSize)) * int(pixelSize);
x += int(pixelSize)) {
int imgX = centerX + x;
int imgY = centerY + y;
if (imgX >= 0 && imgX < width && imgY >= 0 && imgY < height) {
color c = img.get(imgX, imgY);
fill(c);
noStroke();
rect(imgX, imgY, pixelSize, pixelSize);
}
}
}
// ピクセルサイズを変更
pixelSize += growthRate;
if (pixelSize >= 300 || pixelSize <= 10) growthRate *= -1; // 逆方向へ切り替え
}



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