// MC930 - Trabalho prático 6 - 2s2003 // Fernando Kenji Iwai #include "colors.inc" background{ SummerSky } camera { location < 50, 50, 120.00 > right < 1.0, 0.00, 0.00 > up < 0.00, 0.00, 1.0 > sky < 0.00, 1.00, 0.00 > look_at < 50, 50, 0.00 > } light_source { 1*< 30.00, 50.00, 50.00 > color rgb 0.5*< 1,1,1 > } light_source { 1*< 0.00, 0.00, 50.00 > color rgb 0.5*< 1,1,1 > } light_source { 1*< 100.00, 100.00, 50.00 > color rgb 0.5*< 1,1,1 > } light_source { 1*< 0, 100.00, 50.00 > color rgb 0.5*< 1,1,1 > } light_source { 1*< 100.00, 0.00, 50.00 > color rgb 0.5*< 1,1,1 > } light_source { 100*< 5.00, 15.00, -15.00 > color rgb 1.3*< 1,1,1 > } light_source { 100*< -5.00, 15.00, -20.00 > color rgb 1.1*< 1,1,1 > } #declare tx1 = texture { pigment { Pink } finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.2 } } #declare i = 0; //Gera os nos #declare gerador = seed(1234517); #while (i < 11) #declare j = 0; #while( j < 11 ) #declare R = rand(gerador); // Tom do vermelho #declare G = rand(gerador); // Tom do verde #declare B = rand(gerador); // Tom do azul sphere{ <10*i,10*j,0>, 1 pigment { rgb } } #declare j= j+1; #end #declare i=i+1; #end #declare cilindro = cylinder{ <0,0,0>,<-1.2,1.2,1.2>, 0.6 pigment{ color Red }} #declare caixa = box{ <0,0,0> , <1,1,1> pigment {color Blue } } #declare toros = torus { 0.5, 0.4 pigment { color Green} rotate 90*x} #declare i = 0; // Gera os arcos horizontais #declare gerador = seed(34234798); #declare probh = 0.2; //define a probabilidade de um arco aparecer esparsidade #while (i < 10) #declare j = 0; #while( j < 10 ) #if (rand(gerador),<10*(i+1),10*j,0> , 0.5 texture{ tx1}} #declare k = 1; #while(k<4) #declare p = rand(gerador); #declare R = rand(gerador); // Tom do vermelho #declare G = rand(gerador); // Tom do verde #declare B = rand(gerador); // Tom do azul #if(p<0.3) object{ cilindro translate<10*i+3*k, 10*j+1.2,0> } #else #if(p<0.7) object{ caixa translate<10*i+3*k, 10*j+1.2,0> } #else object{ toros translate<10*i+3*k, 10*j+1.2,0> } #end #end #declare k=k+1; #end #else #end #declare j= j+1; #end #declare i=i+1; #end #declare i = 0; // Gera os arcos verticais #declare gerador = seed(34234798); #declare probv = 0.3; //define a probabilidade de um arco aparecer esparsidade #while (i < 10) #declare j = 0; #while( j < 10 ) #if (rand(gerador),<10*i,10*(j+1),0> , 0.5 texture{ tx1}} #declare k = 1; #while(k<4) #declare p = rand(gerador); #declare R = rand(gerador); // Tom do vermelho #declare G = rand(gerador); // Tom do verde #declare B = rand(gerador); // Tom do azul #if(p<0.3) object{ cilindro translate<10*i-1.2, 10*j+3*k,0> } #else #if(p<0.7) object{ caixa translate<10*i-1.2, 10*j+3*k,0> } #else object{ toros translate<10*i-1.2, 10*j+3*k,0> } #end #end #declare k=k+1; #end #else #end #declare j= j+1; #end #declare i=i+1; #end #declare i = 0; // Gera os arcos transversais #declare gerador = seed(80809342); #declare probt = 0.35; //define a probabilidade de um arco aparecer esparsidade #while (i < 10) #declare j = 0; #while( j < 10 ) #if (rand(gerador),<10*(i+1),10*(j+1),0> , 0.5 texture{ tx1}} #declare k = 1; #while(k<4) #declare p = rand(gerador); #declare R = rand(gerador); // Tom do vermelho #declare G = rand(gerador); // Tom do verde #declare B = rand(gerador); // Tom do azul #if(p<0.3) object{ cilindro translate<10*i+3*k+-1.2, 10*j+3*k,0> } #else #if(p<0.7) object{ caixa translate<10*i+3*k+-1.2, 10*j+3*k+1.2,0> } #else object{ toros translate<10*i-1.2+3*k, 10*j+3*k+1.2,0> } #end #end #declare k=k+1; #end #else #end #declare j= j+1; #end #declare i=i+1; #end plane { z, -1 pigment {color Gray} }