// Includes #include "retalho.inc" #include "nuvens.inc" // Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2009-03-09 18:44:03 by stolfi // ====================================================================== // CÂMERA camera{ location < 8.00, 15.00, 10.0 > // Posição do observador. right -0.75*x // Largura RELATIVA da imagem. up 0.60*y // Altura RELATIVA da imagem. sky z // Qual direção é "para cima"? look_at < 0.00, 0.00, 1.00 > // Para onde a câmera está apontando. } // Nota: os parâmetros "right" e "up" devem ter a mesma proporção // que os parâmetros ${WIDTH} e ${HEIGHT} no Makefile. // ====================================================================== // FONTES DE LUZ light_source{ 10 * < +50.0, +30.0, +50.0 > // Posição da lâmpada. color rgb 1.0 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } light_source{ 10 * < +50.0, -10.0, +10.0 > // Posição da lâmpada. color rgb 0.5 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } // ====================================================================== // EIXOS DE COORDENADAS #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 // ====================================================================== // CORES E TEXTURAS background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_plastico = texture{ pigment{ color rgb < 0.10, 0.80, 1.00 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_fosca = texture{ pigment{ color rgb < 0.40, 0.40, 0.40 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_fosca_carro = texture{ pigment{ color rgb < 0.40, 0.40, 0.40 > } finish{ diffuse 0.1 ambient 0.1 reflection 0.5 * <1,1,1> } } #declare tx_espelho = texture{ pigment{ color rgb < 1.00, 0.90, 0.70 > } finish{ diffuse 0.1 reflection 0.8*< 1.00, 0.90, 0.70 > ambient 0.1 } } #declare tx_vidro = texture{ pigment{ color rgb < 0.97, 0.98, 1.00 > filter 0.70 } finish{ diffuse 0.03 reflection 0.25 ambient 0.02 specular 0.25 roughness 0.005 } } #declare tx_fosca1 = texture{ pigment{ color rgb < 1.00, 0.50, 0.10 > } finish{ diffuse 0.9 ambient 0.1 } } // ====================================================================== // DESCRIÇÃO DA CENA //#declare raio = 2.000; // Partes da cena: /* #declare S12 = <0,-4.2,0.8>; #declare S22 = <0,-4.2,1>; #declare S32 = <0,-4.2,1.5>; #declare S13 = <0,-5.2,0>; #declare S14 = <0,-6.2,0>; #declare S23 = <0,-5.2,1>; #declare S24 = <0,-6.2,1>; #declare S33 = <0,-5.2,1.5>; #declare S34 = <0,-6.2,1.5>; #declare R12 = <0,-1,0>; #declare R13 = <0,-2,0.8>; #declare R22 = <0,-1,1>; #declare R32 = <0,-1,2>; #declare R23 = <0,-2,1>; #declare R33 = <0,-2,2>; #declare P13 = <0,2,0.8>; #declare P12 = <0,1,0>; #declare P22 = <0,1,1>; #declare P23 = <0,2,1>; #declare P32 = <0,1,2>; #declare P33 = <0,2,2>; #declare Q12 = <0,4.2,0.8>; #declare Q22 = <0,4.2,1>; #declare Q32 = <0,4.2,1.5>; #declare Q13 = <0,5.2,0>; #declare Q14 = <0,6.2,0>; #declare Q23 = <0,5.2,1>; #declare Q24 = <0,6.2,0.3>; #declare Q33 = <0,5.2,1.5>; #declare Q34 = <0,6.2,0.5>; #declare S11 = (R13 + S12) / 2; #declare S21 = (S22 + R23) / 2; #declare S31 = (S32 + R33) / 2; //#declare S42 = (S32 + <4,-4.2,1.5>)/2; #declare S42 = (S32 + (S32 + <4,0,0>))/2; //#declare S43 = (S33 + <4,-5.2,1.5>)/2; #declare S43 = (S33 + (S33 + <4,0,0>))/2; //#declare S44 = (S34 + <4,-6.2,1.5>)/2; #declare S44 = (S34 + (S34 + <4,0,0>))/2; #declare R11 = (P12 + R12) / 2; #declare R21 = (P22 + R22) / 2; #declare R31 =(P32 + R32) / 2; //#declare R42 = (R32 + <4,-1,2>)/2 ; #declare R42 = (R32 + (R32 + <4,0,0>))/2 ; #declare R14 = (R13 + S12) / 2; #declare R24 = (S22 + R23) / 2; #declare R34 = (S32 + R33) / 2; //#declare R43 = (R33 + <4,-2,2>)/2; #declare R43 = (R33 + (R33 + <4,0,0>))/2; #declare P11 = (P12 + R12) / 2; #declare P14 = (Q12 + P13) / 2; #declare P21 = (P22 + R22) / 2; #declare P24 = (P23 + Q22) / 2; #declare P31 = (P32 + R32) / 2; #declare P34 = (P33 + Q32) / 2; //#declare P42 = (P32 + <4,1,2>)/2; #declare P42 = (P32 + (P32 + <4,0,0>))/2; #declare P41 = (P42 + R42) / 2; //#declare P43 = (P33 + <4,2,2>)/2; #declare P43 = (P33 + (P33 + <4,0,0>))/2; #declare Q11 = (Q12 + P13) / 2; #declare Q21 = (P23 + Q22) /2; #declare Q31 = (P33 + Q32) / 2; //#declare Q42 = (Q32 + <4,4.2, 1.5>)/2; #declare Q42 = (Q32 + (Q32 + <4,0, 0>))/2; #declare Q41 = (P43 + Q42) / 2; //#declare Q43 = (Q33 + <4,5.2,1.5>) / 2; #declare Q43 = (Q33 + (Q33 + <4,0,0>)) / 2; //#declare Q44 = (Q34 + <4,6.2,0.5>) / 2; #declare Q44 = (Q34 + (Q34 + <4,2,0>)) / 2; #declare R41 = (P42 + R42) / 2; #declare P44 = (P43 + Q42) / 2; #declare S41 = (S42 + R43) /2; #declare R44 = (S42 + R43) /2; */ #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 + <4,-4.2,1.5>)/2; #local S42 = (S32 + (S32 + <4,0,0>))/2; //#local S43 = (S33 + <4,-5.2,1.5>)/2; #local S43 = (S33 + (S33 + <4,0,0>))/2; //#local S44 = (S34 + <4,-6.2,1.5>)/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 + <4,-1,2>)/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 + <4,-2,2>)/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 + <4,1,2>)/2; #local P42 = (P32 + (P32 + <4,0,0>))/2; #local P41 = (P42 + R42) / 2; //#local P43 = (P33 + <4,2,2>)/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 + <4,4.2, 1.5>)/2; #local Q42 = (Q32 + (Q32 + <4,0, 0>))/2; #local Q41 = (P43 + Q42) / 2; //#local Q43 = (Q33 + <4,5.2,1.5>) / 2; #local Q43 = (Q33 + (Q33 + <4,0,0>)) / 2; //#local Q44 = (Q34 + <4,6.2,0.5>) / 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_fosca1,tx_fosca_carro) retalho (Q11,Q12,Q13,Q14,Q21,Q22,Q23,Q24,Q31,Q32,Q33,Q34,Q41,Q42,Q43,Q44, tx_fosca1,tx_fosca_carro) retalho (R11,R12,R13,R14,R21,R22,R23,R24,R31,R32,R33,R34,R41,R42,R43,R44, tx_fosca1,tx_fosca_carro) retalho (S11,S12,S13,S14,S21,S22,S23,S24,S31,S32,S33,S34,S41,S42,S43,S44, tx_fosca1,tx_fosca_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 } 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; //quadro 1 #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; //quadro 2 #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; //quadro 3 #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 //______________ //Gerando a Cena union { object { eixos (5) } cena (clock) } //retalho (Q11,Q12,Q13,Q14,Q21,Q22,Q23,Q24,Q31,Q32,Q33,Q34,Q41,Q42,Q43,Q44, tx_fosca,tx_plastico)