// Last edited on DATE TIME by USER // Processed by remove-cam-lights #declare ouro = texture { pigment { rgb < 1.00, 1.00, 0.60> } finish { ambient 0.05 diffuse 0.05 reflection < 1.00, 1.00, 0.60> specular 0.2 roughness 0.05 } } #declare aco = texture { pigment { rgb < 1.0, 0.60, 0.60> } finish { diffuse 0.05 } } #declare bras = texture { pigment { rgb < 0.90, 0.90, 0.90> } finish { diffuse 0.05 } } #declare aco_1 = texture { pigment { rgb < 1.0, 0.0, 0.0> } finish { diffuse 0.05 } } #declare aco_2 = texture { pigment { rgb < 1.0, 1.00, 0.0> } finish { diffuse 0.05 } } #declare vagao = difference { union { box { <3, -1, 0>, <-3, 1, 3> } cylinder { <3, 0, 3>, <-3, 0, 3>, 1.0 } #declare i = 0; #while(i < 4) cylinder { <2 - 1.25*i, -1, -0.4>, <2 - 1.25*i, 1, -0.4>, 0.40 } #declare i = i + 1; #end } box { <3, -0.8, -1>, <-3, 0.8, 0> } #declare i = 0; #while(i < 4) box { <2.9 - i*1.5, -1.1, 1.5>, <1.6 - i*1.5, 1.1, 2.9> } #declare i = i + 1; #end box { <2.9, -0.9, 0.1>, <-2.9, 0.9, 3> } cylinder { <2.9, 0, 3>, <-2.9, 0, 3>, 0.90 } } #declare locomotiva = union { difference { object { vagao } box { <3.1, -1.1, 1>, <0, 1.1, 5> } } cylinder { <3, 0, 1>, <0, 0, 1>, 1.0 } cone { <2.5, 0, 1>, 0.0 <2.5, 0, 3>, 0.4 } #declare gerador = seed(12345); #declare i = 0; #while(i < 200) sphere { <2.5 + 0.04*i*0.4*rand(gerador), 0 + 0.04*i*0.4*rand(gerador), 3 + 2.5*rand(gerador)>, 0.05 texture { ouro } } #declare i = i + 1; #end } #declare raio = 30; #declare trilhos = difference { difference { cylinder { <0, raio, -1>, <0, raio, -0.9>, raio + 1 } cylinder { <0, raio, -1.1>, <0, raio, -0.8>, raio - 1 } } difference { cylinder { <0, raio, -1.1>, <0, raio, -0.8>, raio + 0.8 } cylinder { <0, raio, -1.1>, <0, raio, -0.8>, raio - 0.8 } } } #declare estacao = union { box { <0.5, -0.5, -1>, <-0.5, 0.5, 10> texture { bras } translate -1*y } box { <0.5, -0.5, -1>, <-0.5, 0.5, 10> texture { bras } translate 1*y } difference { sphere { <5, 0, 10>, 10 texture { aco } } box { <100, -100, 0.5>, <-100, 100, 100> texture { bras } } } difference { sphere { <-7, 0, -10.3 >, 10 texture { bras } } } } background{ color rgb <0.75, 0.80, 1.0> } union { object { trilhos } object { estacao translate -10*y } #declare gerador = seed(12345); #declare i = 0; #declare qtd = 5 + 3*rand(gerador); #while(i < qtd) object { #if(i=0) locomotiva texture { aco } #else vagao #if(rand(gerador) < 0.5) texture { aco_1 } #else texture { aco_2 } #end #end #declare rotacao = -(360 + 6.5)/raio; #if(clock < 0.2) #declare mov = (2*45/(0.2*0.2))*(clock*clock)/2; #else #if(clock < 0.8) #declare mov = 45 + (270/0.6)*(clock - 0.2); #else #declare mov = 315 + (270/0.6)*(clock - 0.8); #declare mov = mov + (-2*45/(0.2*0.2))*((clock - 0.8)*(clock - 0.8))/2; #end #end translate raio*(-y) rotate (rotacao*i + mov)*z translate raio*y} #declare i = i + 1; #end } plane { z, -0.9 pigment { rgb < 0.20, 0.50, 0.20> } finish { ambient 0.05 diffuse 0.2 specular 0.02 roughness 0.5 } } #include "camlight.inc" camlight(<0,0,0>,(3.5*<20.00,20.00,10.00>),1.00,z,1.0)