Было дело вечером, делать было нечего.... Решил написать фановый алгоритм для генерации абстракцийЪ. К делу подошел серьезно и к своему удивлению везде закоментировал код. Собсно и ежу понятно за что и какой параметр отвечает. Возможно я выпущу обновление, но пока встречайте калечную бето версию кода написанного за 15 минут на коленке.

//----------figures----------- вкл\выкл фигуры
boolean squares = true; //кадраты
boolean lines = true; //Линии
boolean round = true; //Круги
//----------typs--------------
int squaresT = 2; //0 - оба вида, 1 - только контур, 2 - только заливка
//----------colors------------
int maxR = 256; //Максимальная насыщенность красного цвета
int maxG = 0; //Максимальная насыщенность зеленого цвета
int maxB = 100; //Максимальная насыщенность синего цвета
int maxO = 100; //Максимальная прозраьность фигуры
int background[] = {0, 0, 0};//цвет фона в формате крассный, зеленый, синий
//----------sizes-------------
int maxH = 300; //максимальные размеры фигур
int maxW = 50; //H-высота, W-ширина.
//----------counts------------
int squaresC = 20;// квадраты \
int linesC = 400;// линии ) кол-во
int roundsC = 30;// круги /
//----------misc-------------
boolean notEllipses = true; //Запретить кругам становиться овалами
int signature[] = {255, 255, 255}; //цвет подписи в формате крассный, зеленый, синий
void setup() {
size(1280, 720);//Размер "холста"
background(background[0], background[1], background[2]);
if(squares) {
if(squaresT == 0) {
STO();
STT();
}
if(squaresT == 1) {
STO();
}
if(squaresT == 2) {
STT();
}
}
if(lines) {
L();
}
if(round) {
R();
}
//---------------------Ваша подпись!------------
fill(signature[0],signature[1],signature[2]);
text("sing", 10, 10);//подпись ставиться в ""
//----------------------------------------------
}
void STO() {
for(int i=0;i<squaresC; i++) {
int cx = int(random(width));
int cy = int(random(height));
int o = 255-int(random(maxO));
stroke(int(random(maxR)),int(random(maxG)),int(random(maxB)),o);
rect(cx, cy, int(random(maxW)),int(random(maxH)));
}
}
void STT() {
for(int i=0;i<squaresC; i++) {
int cx = int(random(width));
int cy = int(random(height));
int o = 255-int(random(maxO));
fill(int(random(maxR)),int(random(maxG)),int(random(maxB)),o);
rect(cx, cy, int(random(maxW)),int(random(maxH)));
}
}
void L() {
for(int i=0;i<linesC; i++) {
int cx = int(random(width));
int cy = int(random(height));
int o = 255-int(random(maxO));
stroke(int(random(maxR)),int(random(maxG)),int(random(maxB)),o);
line(cx, cy, int(cx+random(maxW*-1)),int(cy+random(maxH*-1)));
}
}
void R() {
for(int i=0;i<roundsC; i++) {
int cx = int(random(width));
int cy = int(random(height));
int o = 255-int(random(maxO));
stroke(int(random(maxR)),int(random(maxG)),int(random(maxB)),o);
fill(int(random(maxR)),int(random(maxG)),int(random(maxB)),o);
if(notEllipses) {
int misc = int(random(maxH));
ellipse(cx, cy, misc, misc);
}
else {
ellipse(cx, cy, int(random(maxW)),int(random(maxH)));
}
}
}
IDE "processing"
|