function setup() {
c=min(windowWidth, windowHeight)*0.9
createCanvas(c,c);
noLoop()
strokeWeight(0.01)
}
function draw() {
background(0,0,25)
fill(255,255,255,10)
x1=random(c/3,2*c/3);
y1=random(c/4,c/3);
n=int(random(10,30))
for(let i = 0;i<1000;i++){
fill(random(0,25),random(0,55),random(0,105),20)
rect(random(-10,c),random(10,c),random(50,100),random(50,100))
}
fill(255,255,255,10)
for(let i = 0;i<n*2;i++){
fill(255,255,255,10)
circle(x1+random(-10,10),y1+random(-10,10),random(10,100))
fill(255,255,255,5)
circle(x1+random(-10,10),c-y1-c/12-random(-10,10),random(10,100))
}
for(let i = 0;i<n;i++){
l1 = random(10,50)
w1 = random(20,c/2-c/55)
push()
translate(width/n*i,w1)
drawBuilding(l1,c/2-w1+c/10,10)
pop()
}
for(let i = 0;i<n;i++){
l1 = random(10,30)
w1 = random(40,c/2-c/30)
push()
translate(width/n*i-l1,w1+c/50)
drawBuilding(l1,c/2-w1,15)
pop()
}
for(let i = 0;i<n;i++){
l1 = random(c/30,c/15)
w1 = random(20,c/2-c/25)
push()
translate(width/n*i,w1+c/20)
drawBuilding(l1,c/2-w1,20)
pop()
}
}
function drawBuilding(l,w,a){
strokeWeight(0.2)
r1=random(40,50)-a
g1=random(40,90)-a
b1=random(40,130)-a
b = int(w)
for(let i=0; i<b; i++){
fill(r1+random(-10,10), g1+random(-10,10), b1+random(-10,10),a);
strokeWeight(0.01)
stroke(255)
rect(random(0,l),random(0,w),random(5,c/30), random(0,w/2))
}
}
function mousePressed(){
setup()
draw()
}