//Tiago Saad - 971717 //Predio e Cidade #include "colors.inc" #include "textures.inc" background { color red 1 green 1 blue 1 } sky_sphere{ pigment{ gradient y color_map{ [0 color White] [1 color Blue] } } } camera{ location<40, 30, 40> look_at<20, 25, 20> } #declare m=1; #declare n=1; #while(m < 10) #while ( n < 10 ) light_source{ <-50 + 10*m, 50, -50+10*n> color Gray //shadowless } #declare n = n+1; #end #declare m = m+1; #end light_source{ <0, -1, 9> color White } #declare g = seed(pi); #declare i = 1; #declare j = 1; #declare terreo= union{ difference{ box{ < -5, 0, -5> < 5, 4, 5> pigment{color rgb<.1, .1, .9>} } box{ <-.5, -1, -.1> < .25, 1, 2.5> pigment{color rgb<0, 0, 1>} } } box{ // grama em volta < -6, 0, -6> < 6, -.1, 6> pigment{color rgb<0, 1, 0>} } } #declare andares4= union{ //#declare numand = rand(g)*10; #while( i < 5) // numero de andares + 1 box{ // caixa do andar <-5, 0 +3*i, -5> < 5, 3 +3*i, 5> pigment{color rgb<1, 1, 1>} } box{ // acabamento <-5.1, 0 + 3 * i, -5.1> <5.1, .5 + 3 * i, 5.1> pigment{color rgb<1, 0, 0>} } #while ( j < 9 ) // janelas fachada #if (rand(g) < .5) cylinder{ <-5.1, 2 + 3*i, -5 + j>, <5.1, 2 + 3*i, -5 + j>, .45 pigment{color rgb<0, 1, 1>} } #end //fim if #declare j = j+1; #end #declare j = 1; #while ( j < 9 ) // janelas laterais #if(rand(g) > .5) cylinder{ <-5 + j, 2 + 3*i, -5.1> <-5 + j, 2 + 3*i, 5.1> .45 pigment{color rgb<1, 0, 1>} } #end // fim if #declare j = j+1; #end #declare j = 1; #declare i = i+1; #end box{ // topo do predio <-5.2, 0 +3*i, -5.2> < 5.2, 1 +3*i, 5.2> pigment{color rgb<.5, 1, 1>} } #declare i = 1; // volta i para 1 } #declare andares10= union{ //#declare numand = rand(g)*10; #while( i < 11) // numero de andares + 1 box{ // caixa do andar <-5, 0 +3*i, -5> < 5, 3 +3*i, 5> pigment{color rgb<1, 1, 1>} } box{ // acabamento <-5.1, 0 + 3 * i, -5.1> <5.1, .5 + 3 * i, 5.1> pigment{color rgb<1, 0, 0>} } #while ( j < 9 ) // janelas fachada #if (rand(g) < .5) cylinder{ <-5.1, 2 + 3*i, -5 + j>, <5.1, 2 + 3*i, -5 + j>, .45 pigment{color rgb<0, 1, 1>} } #end //fim if #declare j = j+1; #end #declare j = 1; #while ( j < 9 ) // janelas laterais #if(rand(g) > .5) cylinder{ <-5 + j, 2 + 3*i, -5.1> <-5 + j, 2 + 3*i, 5.1> .45 pigment{color rgb<1, 0, 1>} } #end // fim if #declare j = j+1; #end #declare j = 1; #declare i = i+1; #end box{ // topo do predio <-5.2, 0 +3*i, -5.2> < 5.2, 1 +3*i, 5.2> pigment{color rgb<.5, 1, 1>} } #declare i = 1; // volta i para 1 } #declare andares7= union{ //#declare numand = rand(g)*10; #while( i < 8) // numero de andares + 1 box{ // caixa do andar <-5, 0 +3*i, -5> < 5, 3 +3*i, 5> pigment{color rgb<1, 1, 1>} } box{ // acabamento <-5.1, 0 + 3 * i, -5.1> <5.1, .5 + 3 * i, 5.1> pigment{color rgb<1, 0, 0>} } #while ( j < 9 ) // janelas fachada #if (rand(g) < .5) cylinder{ <-5.1, 2 + 3*i, -5 + j>, <5.1, 2 + 3*i, -5 + j>, .45 pigment{color rgb<0, 1, 1>} } #end //fim if #declare j = j+1; #end #declare j = 1; #while ( j < 9 ) // janelas laterais #if(rand(g) > .5) cylinder{ <-5 + j, 2 + 3*i, -5.1> <-5 + j, 2 + 3*i, 5.1> .45 pigment{color rgb<1, 0, 1>} } #end // fim if #declare j = j+1; #end #declare j = 1; #declare i = i+1; #end box{ // topo do predio <-5.2, 0 +3*i, -5.2> < 5.2, 1 +3*i, 5.2> pigment{color rgb<.5, 1, 1>} } #declare i = 1; // volta i para 1 } #declare predio4= union{ object{terreo} object{andares4} } #declare predio7= union{ object{terreo} object{andares7} } #declare predio10= union{ object{terreo} object{andares10} } object{predio7} object{predio4 translate < 0, 0, 24 > } object{predio10 rotate<0, 90, 0> translate<24, 0, 0> } object{predio7 translate < 24, 0, 24 > } plane{ y, -.1 pigment{color rgb <.9, .9, .9>} } #declare m=1; #while ( m < 4 ) object { predio4 translate <-24*m, 0, 0> } #declare m = m+1; #end #declare m = 1; #while ( m < 4 ) object { predio10 translate< -24*m, 0, -24*m> } #declare m = m+1; #end