generativeart_032
// 作品概要:
// テクスチャーアートを模倣
// (C)2023 sakuzo_arts
// Global変数
String APPNAME = "generativeart_032";
float CIRCLE_X; // 円の中心の座標X
float CIRCLE_Y; // 円の中心の座標Y
float CIRCLE_WIDTH; // 円の幅
float CIRCLE_HEIGHT; // 円の高さ
float CIRCLE_START; // 円弧の始点
float CIRCLE_END; // 円弧の終点
// セットアップ
void setup() {
size(800, 800);
noLoop();
}
// 描画
void draw() {
// 背景色設定
background(128);
noFill();
noStroke();
// 座標情報を保存
pushMatrix();
// キャンバスの中心を移動する
translate(width / 2, height / 2);
// キャンバスを回転する
rotate(radians(45));
// 描画処理
for(int i = 0; i < 4; i = i + 1){
rotate(radians(90 * i));
drawpPttern(0, 230, 180, 360);
}
// 保存していた座標情報を呼び出し
popMatrix();
// フッター表示
drawFooter();
}
// 円をを描画する関数
void drawpPttern(float CIRCLE_X, float CIRCLE_Y, float CIRCLE_START_RADIAN, float CIRCLE_END_RADIAN){
for(int i = 0; i < 50; i = i + 5){
strokeWeight(3);
stroke(255);
CIRCLE_WIDTH = 10 * i;
CIRCLE_HEIGHT = CIRCLE_WIDTH;
CIRCLE_START = radians(CIRCLE_START_RADIAN);
CIRCLE_END = radians(CIRCLE_END_RADIAN);
arc(CIRCLE_X, CIRCLE_Y, CIRCLE_WIDTH, CIRCLE_HEIGHT, CIRCLE_START, CIRCLE_END);
line(CIRCLE_X + (CIRCLE_WIDTH/2), CIRCLE_Y, CIRCLE_X + (CIRCLE_WIDTH/2), height);
line(CIRCLE_X - (CIRCLE_WIDTH/2), CIRCLE_Y, CIRCLE_X - (CIRCLE_WIDTH/2), height);
}
}
// フッターを表示する関数
void drawFooter(){
// 長方形の描画方法をデフォルトに戻す
rectMode(CORNER);
// 長方形を背景として描画する
noStroke();
fill(255, 255, 255, 192);
rect(0, height - 45, width, 45);
// 作品名
textAlign(LEFT, BOTTOM);
textSize(20);
fill(64);
text(APPNAME, 30, height - 10);
// 著作権表示
textAlign(RIGHT, BOTTOM);
textSize(20);
fill(64);
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");
}
}
この記事が気に入ったらサポートをしてみませんか?