ProcessingでGenerative art #66
Code
int actRandomSeed = 0;
int count = 140;
Node [] nodes = new Node[count];
int drawMode = 1;
float maxLength = 300;
float range = 250;
void setup() {
size(800, 800);
pixelDensity(2);
colorMode(HSB, 360, 100, 100, 100);
noLoop();
for (int i = 0; i < count; i++) {
nodes[i] = new Node();
}
}
void draw() {
randomSeed(actRandomSeed);
if (drawMode == 1) {
background(360);
}
if (drawMode == 2) {
background(0);
}
if (drawMode == 3) {
background(360);
}
for (int i = 0; i < count -1; i++) {
Node thisNode = nodes[i];
for (int j = 0; j < count; j++) {
Node otherNode = nodes[j];
drawLine(thisNode, otherNode);
}
}
for (int i = 0; i < count; i++) {
nodes[i].display();
}
}
void drawLine(Node n1, Node n2) {
float distance = dist(n1.position.x, n1.position.y, n2.position.x, n2.position.y);
float distMouse= dist(mouseX, mouseY, n2.position.x, n2.position.y);
if (distMouse < range) {
if (distance <= maxLength) {
strokeWeight(0.7);
noFill();
if (drawMode == 1)stroke(0, 30);
if (drawMode == 2) {
strokeWeight(1);
stroke(random(250, 360), 90, 90, 40);
}
if (drawMode == 3) {
strokeWeight(random(30));
stroke(210, random(100), random(30, 100), 60);
}
line(n1.position.x, n1.position.y, n2.position.x, n2.position.y);
}
}
}
void mousePressed() {
redraw();
for (int i = 0; i < count; i++) {
nodes[i] = new Node();
}
actRandomSeed = (int)random(10000);
}
void keyPressed() {
if (key == 's')saveFrame("####.png");
if (key == '1')drawMode = 1;
if (key == '2')drawMode = 2;
if (key == '3')drawMode = 3;
}
/-------------------------------------------------------------------
class Node {
PVector position;
float ellipseSize;
Node() {
position = new PVector(random(width), random(height));
ellipseSize = random(5, 40);
if(drawMode == 3)ellipseSize = 20;
}
void display() {
noStroke();
pushMatrix();
translate(position.x, position.y);
rotate(PI * 0.25);
fill(0);
if(drawMode == 2)fill(200, 90, 70, 50);
ellipse(0, 0, ellipseSize, ellipseSize);
fill(360,90);
ellipse(0 + ellipseSize*0.25, 0 - ellipseSize*0.25, ellipseSize * 0.1, ellipseSize * 0.1);
fill(360, 90);
ellipse(0, 0 - ellipseSize*0.30, ellipseSize * 0.25, ellipseSize * 0.15);
popMatrix();
}
}
Happy Coding!!
応援してくださる方!いつでもサポート受け付けてます!