fractalkitty looking for math? fractalkitty.com

all

night thoughts

#random#interactive#sky

drawBuilding


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()
}