// Last edited on DATE TIME by USER // Processed by remove-cam-lights #include "colors.inc" #include "colors.inc" #declare gerador = seed(123456); #declare solo = plane { <0,0,1>, -3.81 pigment{color Green} } #declare trilho_reto = box{ <5,-40,-0.25>, <-5,40,0.25> pigment{Gray} translate<0,0,-3.8> } #declare disco = cylinder{ <0,0,0.25>, <0,0,-0.25> 40 pigment{color Gray} } #declare furo = cylinder{ <0,0,3>, <0,0,-3> 30 } #declare corte_esquerdo = box{ <100,-100,-9>, <-100,0,9> } #declare corte_direito = box{ <100,0,-5>, <-100,100,5> } #declare trilho_curva_direita = difference{ object{disco} object{furo} object{corte_esquerdo} translate<0,0,-3.8> } #declare trilho_curva_esquerda = difference{ object{disco} object{furo} object{corte_direito} translate<0,0,-3.8> } #declare trilho_circular = difference{ object{disco} object{furo} translate<0,0,-3.8> } #declare janela_quadrada = box { <0.5,-0.5,-0.5>, <-0.5,0.5,0.5> } #declare corte_triangular = box { <0.8,-0.5,-1>, <-0.8,0.5,1> } #declare janela_triangular = difference { object{janela_quadrada translate<0,0,0.5>} object{corte_triangular translate<0,0.5,1> rotate x*26.5651 translate<0,0.5,0> } object{corte_triangular translate<0,-0.5,1> rotate x*-26.5651 translate<0,-0.5,0>} translate <0,0,-0.5> } #declare janela_circular = cylinder{ <0.5,0,0>, <-0.5,0,0> 0.5 } #declare bloco = box{ <1.5,-4.5,-2.5>, <-1.5,4.5,2.5> pigment {rgb } } #declare roda = cylinder{ <0.5,0,0>, <-0.5,0,0> 1 } #declare link = box{ <0.25,-1,-0.25>, <-0.25, 1,0.25> pigment{color Gray} } #declare vagao = union { object{bloco} #declare i=0; #declare j=0; #declare p = 0; #declare a=1.5; #while(i<2) #if(a=1.5) #declare a = -1.5; #else #declare a = 1.5; #end #declare i = i + 1; #declare b=-5.5; #declare j=0; #while(j<4) #declare b = b + 2.25; #declare j = j + 1; object{roda pigment {rgb } translate} #if(p=0) object{janela_circular pigment {rgb } translate} #end #if(p=1) object{janela_triangular pigment {rgb } translate} #end #if(p=2) object{janela_quadrada pigment {rgb } translate} #declare p = -1; #end #declare p = p + 1; #end #end } #declare base = box{ <1.5,-4.5,-1>, <-1.5,4.5,1> pigment{color Blue} } #declare cabine = box{ <1.5,-1,-1.5>, <-1.5,1,1.5> pigment{color Gray} } #declare chamine = cylinder{ <0,0,-1>, <0,0,1> 1 open } #declare locomotiva = union{ object{base} object{cabine translate<0 ,-3.5,2.0>} object{chamine translate<0,-0.5,2.0> pigment{rgb }} object{chamine translate<0,2.5,2.0> pigment {rgb } } #declare i=0; #declare j=0; #declare a=1.5; #while(i<2) #if(a=1.5) #declare a = -1.5; #else #declare a = 1.5; #end #declare i = i + 1; #declare b=-5.5; #declare j=0; #while(j<4) #declare b = b + 2.25; #declare j = j + 1; object{roda pigment {rgb } translate} #end #end translate<0,0,-1.5> } #declare trem = union { object{locomotiva} object{link translate<0,-11,0>} object{vagao translate<0,-11,0>} object{link translate<0,-16.5,-2.5>} object{vagao translate<0,-22,0>} object{link translate<0,-27.5,-2.5>} object{vagao translate<0,-33,0>} object{link translate<0,-38.5,-2.5>} object{vagao translate<0,-44,0>} } union{ #declare tt = clock*10; #if (tt < 2) #declare vv = 0.625*tt*tt; #else #if(tt < 8) #declare vv = 2.5 + 0.75*(tt-2); #else #declare vv = 10 - (0.625*((10-tt)*(10-tt))); #end #end #declare yy = 35*sin(6.28*(vv/10)); #declare xx = 35*cos(6.28*(vv/10)); #declare rot = 360*(vv/10); object{solo} object{trilho_circular} object{locomotiva rotate rot*z translate} } #include "camlight.inc" camlight(<0,0,0>,<115.00,20,30>,1.00,z,1.0)