// Last edited on 2009-11-24 22:34:24 by stolfilocal // Processed by remove-cam-lights #include "retalho.inc" #declare grid_rd = 0.03; #include "nuvens.inc" #macro eixo(ponta,cor,nome) union{ sphere{ <0,0,0>, 0.02 } cylinder{ <0,0,0>, 0.91*ponta, 0.02 } cone{ 0.90*ponta, 0.06, ponta, 0.00 } texture{ pigment{ color rgb cor } finish{ ambient 0.5 diffuse 0.5 } } } #end #macro eixos(tamanho) union{ object{ eixo( , <1.0,0.2,0.2>, "X") } object{ eixo( <0,tamanho,0>, <0.0,0.8,0.0>, "Y") } object{ eixo( <0,0,tamanho>, <0.3,0.3,1.0>, "Z") } } #end background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_grade = texture{ pigment{ color rgb < 1.00, 0.50, 0.10 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_carro = texture{ pigment{ color rgb < 0.40, 0.90, 0.60 > } finish{ diffuse 0.4 ambient 0.1 reflection 0.5 * <1,1,1> } } #macro metade_carro(S12, S13, S14, S22, S23, S24, S32, S33, S34, R12, R13, R22, R23, R32, R33, P12, P13, P22, P23, P32, P33, Q12, Q13, Q14, Q22, Q23, Q24,Q32, Q33, Q34, bico) #local S11 = (R13 + S12) / 2; #local S21 = (S22 + R23) / 2; #local S31 = (S32 + R33) / 2; #local S42 = (S32 + (S32 + <4,0,0>))/2; #local S43 = (S33 + (S33 + <4,0,0>))/2; #local S44 = (S34 + (S34 + <4,0,0>))/2; #local R11 = (P12 + R12) / 2; #local R21 = (P22 + R22) / 2; #local R31 =(P32 + R32) / 2; #local R42 = (R32 + (R32 + <4,0,0>))/2 ; #local R14 = (R13 + S12) / 2; #local R24 = (S22 + R23) / 2; #local R34 = (S32 + R33) / 2; #local R43 = (R33 + (R33 + <4,0,0>))/2; #local P11 = (P12 + R12) / 2; #local P14 = (Q12 + P13) / 2; #local P21 = (P22 + R22) / 2; #local P24 = (P23 + Q22) / 2; #local P31 = (P32 + R32) / 2; #local P34 = (P33 + Q32) / 2; #local P42 = (P32 + (P32 + <4,0,0>))/2; #local P41 = (P42 + R42) / 2; #local P43 = (P33 + (P33 + <4,0,0>))/2; #local Q11 = (Q12 + P13) / 2; #local Q21 = (P23 + Q22) /2; #local Q31 = (P33 + Q32) / 2; #local Q42 = (Q32 + (Q32 + <4,0, 0>))/2; #local Q41 = (P43 + Q42) / 2; #local Q43 = (Q33 + (Q33 + <4,0,0>)) / 2; #local Q44 = (Q34 + (Q34 + bico)) / 2; #local R41 = (P42 + R42) / 2; #local P44 = (P43 + Q42) / 2; #local S41 = (S42 + R43) /2; #local R44 = (S42 + R43) /2; union { retalho (P11,P12,P13,P14,P21,P22,P23,P24,P31,P32,P33,P34,P41,P42,P43,P44, tx_grade,tx_carro) retalho (Q11,Q12,Q13,Q14,Q21,Q22,Q23,Q24,Q31,Q32,Q33,Q34,Q41,Q42,Q43,Q44, tx_grade,tx_carro) retalho (R11,R12,R13,R14,R21,R22,R23,R24,R31,R32,R33,R34,R41,R42,R43,R44, tx_grade,tx_carro) retalho (S11,S12,S13,S14,S21,S22,S23,S24,S31,S32,S33,S34,S41,S42,S43,S44, tx_grade,tx_carro) object { roda() translate <0,3.0,0> } object { roda() translate <0,-3.5,0> } } #end #macro roda() union{ cylinder{<0,0,0>, <0.5,0,0>, 1.0 texture {pigment{color rgb <0.2, 0.2, 0.2>}} } cylinder{<-0.1,0,0>, <0.52,0,0>, 0.8 texture {pigment{color rgb <1.0, 0.6, 0.10>}}} } #end #macro automovel(S12, S13, S14, S22, S23, S24, S32, S33, S34, R12, R13, R22, R23, R32, R33, P12, P13, P22, P23, P32, P33, Q12, Q13, Q14, Q22, Q23, Q24,Q32, Q33, Q34, bico) union{ object {metade_carro(S12, S13, S14, S22, S23, S24, S32, S33, S34, R12, R13, R22, R23, R32, R33, P12, P13, P22, P23, P32, P33, Q12, Q13, Q14, Q22, Q23, Q24,Q32, Q33, Q34,bico) translate <-2, 0, 0> } object { metade_carro(S12, S13, S14, S22, S23, S24, S32, S33, S34, R12, R13, R22, R23, R32, R33, P12, P13, P22, P23, P32, P33, Q12, Q13, Q14, Q22, Q23, Q24,Q32, Q33, Q34,bico) scale <-1,1, 1> translate <2,0,0> } } #end #macro cena(ck) #local ck1 = 0; #local S12_1 = <0,-4.2,0.8>; #local S22_1 = <0,-4.2,1>; #local S32_1 = <0,-4.2,1.5>; #local S13_1 = <0,-5.2,0>; #local S14_1 = <0,-6.2,0>; #local S23_1 = <0,-5.2,1>; #local S24_1 = <0,-6.2,1>; #local S33_1 = <0,-5.2,1.5>; #local S34_1 = <0,-6.2,1.5>; #local R12_1 = <0,-1,0>; #local R13_1 = <0,-2,0.8>; #local R22_1 = <0,-1,1>; #local R32_1 = <0,-1,2>; #local R23_1 = <0,-2,1>; #local R33_1 = <0,-2,2>; #local P13_1 = <0,2,0.8>; #local P12_1 = <0,1,0>; #local P22_1 = <0,1,1>; #local P23_1 = <0,2,1>; #local P32_1 = <0,1,2>; #local P33_1 = <0,2,2>; #local Q12_1 = <0,4.2,0.8>; #local Q22_1 = <0,4.2,1>; #local Q32_1 = <0,4.2,1.5>; #local Q13_1 = <0,5.2,0>; #local Q14_1 = <0,6.2,0>; #local Q23_1 = <0,5.2,1>; #local Q24_1 = <0,6.2,0.3>; #local Q33_1 = <0,5.2,1.5>; #local Q34_1 = <0,6.2,0.5>; #local bico_1 = <4,0,0>; #local ck2 = 0.333; #local S12_2 = <0,-4.2,0.8>; #local S22_2 = <0,-4.2,1>; #local S32_2 = <0,-4.2,1.5>; #local S13_2 = <0,-5.2,0>; #local S14_2 = <0,-6.2,0>; #local S23_2 = <0,-5.2,1>; #local S24_2 = <0,-6.2,1>; #local S33_2 = <0,-5.2,1.5>; #local S34_2 = <0,-6.2,1.5>; #local R12_2 = <0,-1,0>; #local R13_2 = <0,-2,0.8>; #local R22_2 = <0,-1,1>; #local R32_2 = <0,-1,3>; #local R23_2 = <0,-2,1>; #local R33_2 = <0,-2,3>; #local P13_2 = <0,2,0.8>; #local P12_2 = <0,1,0>; #local P22_2 = <0,1,1>; #local P23_2 = <0,2,1>; #local P32_2 = <0,1,2>; #local P33_2 = <0,2,2>; #local Q12_2 = <0,4.2,0.8>; #local Q22_2 = <0,4.2,1>; #local Q32_2 = <0,4.2,1.5>; #local Q13_2 = <0,5.2,0>; #local Q14_2 = <0,6.2,0>; #local Q23_2 = <0,5.2,1>; #local Q24_2 = <0,6.2,0.3>; #local Q33_2 = <0,5.2,1.5>; #local Q34_2 = <0,6.2,0.5>; #local bico_2 = <4,2,0>; #local ck3 = 0.666; #local S12_3 = <0,-4.2,0.8>; #local S22_3 = <0,-4.2,1>; #local S32_3 = <0,-4.2,1.5>; #local S13_3 = <0,-5.2,0>; #local S14_3 = <0,-6.2,0>; #local S23_3 = <0,-5.2,1>; #local S24_3 = <0,-6.2,1>; #local S33_3 = <0,-5.2,1.5>; #local S34_3 = <0,-6.2,1.5>; #local R12_3 = <0,-1,0>; #local R13_3 = <0,-2,0.8>; #local R22_3 = <0,-1,1>; #local R32_3 = <0,-1,2>; #local R23_3 = <0,-2,1>; #local R33_3 = <0,-2,2>; #local P13_3 = <0,2,0.8>; #local P12_3 = <0,1,0>; #local P22_3 = <0,1,1>; #local P23_3 = <0,2,1>; #local P32_3 = <0,1,3>; #local P33_3 = <0,2,3>; #local Q12_3 = <0,4.2,0.8>; #local Q22_3 = <0,4.2,1>; #local Q32_3 = <0,4.2,1.5>; #local Q13_3 = <0,5.2,0>; #local Q14_3 = <0,6.2,0>; #local Q23_3 = <0,5.2,1>; #local Q24_3 = <0,6.2,1.0>; #local Q33_3 = <0,5.2,1.5>; #local Q34_3 = <0,6.2,1.5>; #local bico_3 = <4,0,0>; #declare ck4 = 1; #if ((ck >= ck1) & ( ck < ck2 )) #local tt = (ck - ck1)/(ck2-ck1); #local S12 = (1-tt) * S12_1 + tt * S12_2; #local S22 = (1-tt) * S22_1 + tt * S22_2; #local S32 = (1-tt) * S32_1 + tt * S32_2; #local S13 = (1-tt) * S13_1 + tt * S13_2; #local S14 = (1-tt) * S14_1 + tt * S14_2; #local S23 = (1-tt) * S23_1 + tt * S23_2; #local S24 = (1-tt) * S24_1 + tt * S24_2; #local S33 = (1-tt) * S33_1 + tt * S33_2; #local S34 = (1-tt) * S34_1 + tt * S34_2; #local R12 = (1-tt) * R12_1 + tt * R12_2; #local R13 = (1-tt) * R13_1 + tt * R13_2; #local R22 = (1-tt) * R22_1 + tt * R22_2; #local R32 = (1-tt) * R32_1 + tt * R32_2; #local R23 = (1-tt) * R23_1 + tt * R23_2; #local R33 = (1-tt) * R33_1 + tt * R33_2; #local P13 = (1-tt) * P13_1 + tt * P13_2; #local P12 = (1-tt) * P12_1 + tt * P12_2; #local P22 = (1-tt) * P22_1 + tt * P22_2; #local P23 = (1-tt) * P23_1 + tt * P23_2; #local P32 = (1-tt) * P32_1 + tt * P32_2; #local P33 = (1-tt) * P33_1 + tt * P33_2; #local Q12 = (1-tt) * Q12_1 + tt * Q12_2; #local Q22 = (1-tt) * Q22_1 + tt * Q22_2; #local Q32 = (1-tt) * Q32_1 + tt * Q32_2; #local Q13 = (1-tt) * Q13_1 + tt * Q13_2; #local Q14 = (1-tt) * Q14_1 + tt * Q14_2; #local Q23 = (1-tt) * Q23_1 + tt * Q23_2; #local Q24 = (1-tt) * Q24_1 + tt * Q24_2; #local Q33 = (1-tt) * Q33_1 + tt * Q33_2; #local Q34 = (1-tt) * Q34_1 + tt * Q34_2; #local bico = (1-tt) * bico_1 + tt * bico_2; #end #if ((ck >= ck2) & ( ck <= ck3 )) #local tt = (ck - ck2)/(ck3-ck2); #local S12 = (1-tt) * S12_2 + tt * S12_3; #local S22 = (1-tt) * S22_2 + tt * S22_3; #local S32 = (1-tt) * S32_2 + tt * S32_3; #local S13 = (1-tt) * S13_2 + tt * S13_3; #local S14 = (1-tt) * S14_2 + tt * S14_3; #local S23 = (1-tt) * S23_2 + tt * S23_3; #local S24 = (1-tt) * S24_2 + tt * S24_3; #local S33 = (1-tt) * S33_2 + tt * S33_3; #local S34 = (1-tt) * S34_2 + tt * S34_3; #local R12 = (1-tt) * R12_2 + tt * R12_3; #local R13 = (1-tt) * R13_2 + tt * R13_3; #local R22 = (1-tt) * R22_2 + tt * R22_3; #local R32 = (1-tt) * R32_2 + tt * R32_3; #local R23 = (1-tt) * R23_2 + tt * R23_3; #local R33 = (1-tt) * R33_2 + tt * R33_3; #local P13 = (1-tt) * P13_2 + tt * P13_3; #local P12 = (1-tt) * P12_2 + tt * P12_3; #local P22 = (1-tt) * P22_2 + tt * P22_3; #local P23 = (1-tt) * P23_2 + tt * P23_3; #local P32 = (1-tt) * P32_2 + tt * P32_3; #local P33 = (1-tt) * P33_2 + tt * P33_3; #local Q12 = (1-tt) * Q12_2 + tt * Q12_3; #local Q22 = (1-tt) * Q22_2 + tt * Q22_3; #local Q32 = (1-tt) * Q32_2 + tt * Q32_3; #local Q13 = (1-tt) * Q13_2 + tt * Q13_3; #local Q14 = (1-tt) * Q14_2 + tt * Q14_3; #local Q23 = (1-tt) * Q23_2 + tt * Q23_3; #local Q24 = (1-tt) * Q24_2 + tt * Q24_3; #local Q33 = (1-tt) * Q33_2 + tt * Q33_3; #local Q34 = (1-tt) * Q34_2 + tt * Q34_3; #local bico = (1-tt) * bico_2 + tt * bico_3; #end #if ((ck >= ck3) & ( ck <= ck4 )) #local tt = (ck - ck3)/(ck4-ck3); #local S12 = (1-tt) * S12_3 + tt * S12_1; #local S22 = (1-tt) * S22_3 + tt * S22_1; #local S32 = (1-tt) * S32_3 + tt * S32_1; #local S13 = (1-tt) * S13_3 + tt * S13_1; #local S14 = (1-tt) * S14_3 + tt * S14_1; #local S23 = (1-tt) * S23_3 + tt * S23_1; #local S24 = (1-tt) * S24_3 + tt * S24_1; #local S33 = (1-tt) * S33_3 + tt * S33_1; #local S34 = (1-tt) * S34_3 + tt * S34_1; #local R12 = (1-tt) * R12_3 + tt * R12_1; #local R13 = (1-tt) * R13_3 + tt * R13_1; #local R22 = (1-tt) * R22_3 + tt * R22_1; #local R32 = (1-tt) * R32_3 + tt * R32_1; #local R23 = (1-tt) * R23_3 + tt * R23_1; #local R33 = (1-tt) * R33_3 + tt * R33_1; #local P13 = (1-tt) * P13_3 + tt * P13_1; #local P12 = (1-tt) * P12_3 + tt * P12_1; #local P22 = (1-tt) * P22_3 + tt * P22_1; #local P23 = (1-tt) * P23_3 + tt * P23_1; #local P32 = (1-tt) * P32_3 + tt * P32_1; #local P33 = (1-tt) * P33_3 + tt * P33_1; #local Q12 = (1-tt) * Q12_3 + tt * Q12_1; #local Q22 = (1-tt) * Q22_3 + tt * Q22_1; #local Q32 = (1-tt) * Q32_3 + tt * Q32_1; #local Q13 = (1-tt) * Q13_3 + tt * Q13_1; #local Q14 = (1-tt) * Q14_3 + tt * Q14_1; #local Q23 = (1-tt) * Q23_3 + tt * Q23_1; #local Q24 = (1-tt) * Q24_3 + tt * Q24_1; #local Q33 = (1-tt) * Q33_3 + tt * Q33_1; #local Q34 = (1-tt) * Q34_3 + tt * Q34_1; #local bico = (1-tt) * bico_3 + tt * bico_1; #end automovel (S12, S13, S14, S22, S23, S24, S32, S33, S34, R12, R13, R22, R23, R32, R33, P12, P13, P22, P23, P32, P33, Q12, Q13, Q14, Q22, Q23, Q24,Q32, Q33, Q34,bico) #end union { // object { eixos (5) } cena (clock) } // Original camera parameters: // #local cam_ctr = <0.00,0.00,1.00> // #local cam_loc = <8.00,15.00,10.0> // #local cam_vec = (<8.00,15.00,10.0>-<0.00,0.00,1.00>) // #local cam_sky = z #include "camlight.inc" camlight(<0.00,1.00,1.00>,8.50,<10,8,7>,30.00,z,1.2)