arc 3D
@author
void setup(){
size(640, 640, P3D);
noStroke();
mousePressed();
}
void mousePressed(){
background(255);
translate(width / 2, height / 2);
for(int i = 0; i < 20; i++){
int arcNum = int(random(1, 5));
float startAng = random(TWO_PI);
float endAng = startAng + random(PI);
float startRadious = random(20, 200);
float arcWidth = random(5, 40);
float arcInterval = random(5, 30);
fill(random(255), random(255), random(255));
pushMatrix();
rotateX(random(TWO_PI));
rotateY(random(TWO_PI));
rotateZ(random(TWO_PI));
for(int ai = 0; ai < arcNum; ai++){
beginShape();
float radious1 = startRadious + ai * (arcWidth + arcInterval);
for(float angle = startAng; angle <= endAng; angle += 0.01){
vertex(radious1 * cos(angle), radious1 * sin(angle));
}
float radious2 = startRadious + arcWidth + ai * (arcWidth + arcInterval);
for(float angle = endAng; angle >= startAng; angle -= 0.01){
vertex(radious2 * cos(angle), radious2 * sin(angle));
}
endShape(CLOSE);
}
popMatrix();
}
}
void draw(){
}