generativeart_033
// 作品概要:
// 色が重なる動画
// (C)2023 sakuzo_arts
// Global変数
String APPNAME = "generativeart_033";
float CIRCLE_X; // 円の中心の座標X
float CIRCLE_Y; // 円の中心の座標Y
float CIRCLE_DIAMETER; // 円の幅
color COLOR_R;
color COLOR_G;
color COLOR_B;
int CIRCLE_R_X;
int CIRCLE_R_Y;
int CIRCLE_G_X;
int CIRCLE_G_Y;
int CIRCLE_B_X;
int CIRCLE_B_Y;
int SPEED_R;
int SPEED_G;
int SPEED_B;
// セットアップ
void setup() {
blendMode(SCREEN);
size(800, 800);
frameRate(60);
CIRCLE_DIAMETER = 500;
CIRCLE_R_X = 0;
CIRCLE_G_X = 0;
CIRCLE_B_X = 0;
CIRCLE_R_Y = height / 2;
CIRCLE_G_Y = height / 2;
CIRCLE_B_Y = height / 2;
SPEED_R = 5;
SPEED_G = 4;
SPEED_B = 3;
COLOR_R = color(255, 0, 0, 255);
COLOR_G = color( 0, 255, 0, 255);
COLOR_B = color( 0, 0, 255, 255);
}
// 描画
void draw() {
// 背景色設定
background(0);
noFill();
noStroke();
CIRCLE_R_X = CIRCLE_R_X + SPEED_R;
CIRCLE_G_X = CIRCLE_G_X + SPEED_G;
CIRCLE_B_X = CIRCLE_B_X + SPEED_B;
// 描画処理
fill(COLOR_R);
circle(CIRCLE_R_X, CIRCLE_R_Y, CIRCLE_DIAMETER);
if(CIRCLE_R_X > width){
SPEED_R = -5;
} else if(CIRCLE_R_X < 0){
SPEED_R = +5;
}
fill(COLOR_G);
circle(CIRCLE_G_X, CIRCLE_G_Y, CIRCLE_DIAMETER);
if(CIRCLE_G_X > width){
SPEED_G = -4;
} else if(CIRCLE_G_X < 0){
SPEED_G = +4;
}
fill(COLOR_B);
circle(CIRCLE_B_X, CIRCLE_B_Y, CIRCLE_DIAMETER);
if(CIRCLE_B_X > width){
SPEED_B = -3;
} else if(CIRCLE_B_X < 0){
SPEED_B = +3;
}
// フッター表示
drawFooter();
saveFrame("frames/####.png");
if (frameCount >= 600) {
exit();
}
}
// フッターを表示する関数
void drawFooter(){
// 長方形の描画方法をデフォルトに戻す
rectMode(CORNER);
// 長方形を背景として描画する
noStroke();
fill(0);
rect(0, height - 45, width, 45);
// 作品名
textAlign(LEFT, BOTTOM);
textSize(20);
fill(255);
text(APPNAME, 30, height - 10);
// 著作権表示
textAlign(RIGHT, BOTTOM);
textSize(20);
fill(255);
text("(C)2023 sakuzo_arts", width - 30, height - 10);
}
// キー操作でイベントを実行する関数
void keyPressed(){
// スペースキーを押下で再描画
if(key == ' '){
redraw();
}
// Shift+sキーを押下で画像保存
if(key == 'S'){
int Y = year();
int M = month();
int D = day();
int h = hour();
int m = minute();
int s = second();
String FILENAME = APPNAME + "-" + Y + nf(M, 2) + nf(D, 2) + nf(h, 2) + nf(m, 2) + nf(s, 2);
saveFrame(FILENAME + ".png");
}
}
この記事が気に入ったらサポートをしてみませんか?