![見出し画像](https://assets.st-note.com/production/uploads/images/94017107/rectangle_large_type_2_77df09c2694c91e2afdc1186f1d41d19.png?width=1200)
generativeart_021
![](https://assets.st-note.com/img/1671887822279-60aMIqboI2.png?width=1200)
// 作品概要:
// ネオンのように光る四角形
// Global変数
String APPNAME = "generativeart_021";
float RECTANGLE_X; // 四角形の始点(左上)の座標X
float RECTANGLE_Y; // 四角形の始点(左上)の座標Y
float RECTANGLE_WIDTH; // 四角形の幅
float RECTANGLE_HEIGHT; // 四角形の高さ
int DRAW_NUMBER; // 描画する多角形の数
// セットアップ
void setup() {
blendMode(SCREEN);
size(800, 800);
noLoop();
}
// 描画
void draw() {
pushMatrix();
DRAW_NUMBER = 30;
drawRectangle(DRAW_NUMBER);
popMatrix();
copyright();
}
// 指定した数の四角形を描画する関数
void drawRectangle(int DRAW_NUMBER){
background(0);
noStroke();
noFill();
// キャンバスの中心を移動する
translate(width / 2, height / 2);
// 放射点を決める
RECTANGLE_X = random(-5, 5);
RECTANGLE_Y = random(-5, 5);
// 四角形を放射状の描画をする
for (int i = 0; i < DRAW_NUMBER; i++) {
RECTANGLE_WIDTH = random(20, 30) * i;
RECTANGLE_HEIGHT = RECTANGLE_WIDTH;
rotate(radians(random(180)));
strokeCap(ROUND);
strokeJoin(ROUND);
for (int j = 1; j < 10; j++) {
strokeWeight(j * random(0, 3));
stroke(255, random(0, 128), random(129, 255) - j, random(129, 255));
rect(RECTANGLE_X-(RECTANGLE_WIDTH/2), RECTANGLE_Y-(RECTANGLE_HEIGHT/2), RECTANGLE_WIDTH, RECTANGLE_HEIGHT);
}
}
}
// 色を設定する
color getColor(){
float COLOR_R = 255;
float COLOR_G = random(129, 255);
float COLOR_B = random(0, 128);
float COLOR_A = random(129, 255);
color COLOR_RGBA = color(COLOR_R, COLOR_G, COLOR_B, COLOR_A);
return COLOR_RGBA;
}
// 著作権を表示する関数
void copyright(){
// 背景
noStroke();
fill(255, 255, 255, 192);
rect(0, height - 45, width, 45);
// 著作権表示
String MESSAGE = "(C)2022 Sgr.Hataya";
textAlign(CENTER, CENTER);
textSize(25);
fill(255);
text(MESSAGE, width/2, height-30);
}
// キー操作でイベント実行
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");
}
}
deconbatchさんのコードを参考にさせていただきました。
この記事が気に入ったらサポートをしてみませんか?