Files
perlinsim/Utils.pde
2023-11-27 01:06:16 +02:00

87 lines
2.1 KiB
Plaintext

void cylinder(float bottom, float top, float h, int sides) {
pushMatrix();
float angleX = HALF_PI;
float angleY = 0;
rotateX(angleX);
rotateY(angleY);
translate(0, h / 2, 0);
float angle;
float[] x = new float[sides + 1];
float[] z = new float[sides + 1];
float[] x2 = new float[sides + 1];
float[] z2 = new float[sides + 1];
for (int i = 0; i < x.length; i++) {
angle = TWO_PI / (sides) * i;
x[i] = sin(angle) * bottom;
z[i] = cos(angle) * bottom;
}
for (int i = 0; i < x.length; i++) {
angle = TWO_PI / (sides) * i;
x2[i] = sin(angle) * top;
z2[i] = cos(angle) * top;
}
beginShape(TRIANGLE_FAN);
vertex(0, -h / 2, 0);
for (int i = 0; i < x.length; i++) {
vertex(x[i], -h / 2, z[i]);
}
endShape();
beginShape(QUAD_STRIP);
for (int i = 0; i < x.length; i++) {
vertex(x[i], -h / 2, z[i]);
vertex(x2[i], h / 2, z2[i]);
}
endShape();
beginShape(TRIANGLE_FAN);
vertex(0, h / 2, 0);
for (int i = 0; i < x.length; i++) {
vertex(x2[i], h / 2, z2[i]);
}
endShape();
popMatrix();
}
color getRandomTreeColor() {
int rand = int(random(0, 101));
if (rand < 10) return color(255, 69, 0);
if (rand < 20) return autumn1;
if (rand < 30) return autumn2;
if (rand < 40) return autumn3;
if (rand < 50) return autumn4;
if (rand < 60) return autumn5;
if (rand < 70) return autumn6;
if (rand < 80) return autumn7;
return darkgreen;
}
color getRandomFlowerColor() {
//float yellowBrightness = 150;
//float rand1 = yellowBrightness + randomGaussian() * 25;
//float rand2 = yellowBrightness + randomGaussian() * 25;
//float rand3 = yellowBrightness + randomGaussian() * 25;
//rand1 = constrain(rand1, 0, 255);
//rand2 = constrain(rand2, 0, 255);
//rand3 = constrain(rand3, 0, 255);
return color(random(0, 255), random(0, 255), random(0, 255));
}