// Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2010-03-04 15:44:01 by stolfi // ====================================================================== // CORES E TEXTURAS background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_cinza = texture{ pigment{ color rgb < 0.95, 0.95, 0.95 > } } #declare tx_marrom = texture{ pigment{ color rgb < 0.70, 0.3, 0.0 >} } #include "eixos.inc" #include "retalho.inc" /////////////////////////////////////////////////////////////////////////// // pontos do aviao // Aqui está a cena, finalmente: #declare asa = intersection{ box{<0.25,0,0.05>,<-0.25,1,-0.05>} cone{ <0,0,0>, 0.5, <0,1,0>, 0.1} } #macro transf1(ponto) #local centro_curva = <2,0,-2>; #if(ponto.x>centro_curva.x) #local relacao = (ponto.x-centro_curva.x)/centro_curva.x; #else #local relacao = (centro_curva.x-ponto.x)/centro_curva.x; #end #end #macro transf2(ponto) #if(ponto.x>0.5 & ponto.x<1.5 & ponto.z>0.5) #local novo = ; #else #local novo = ; #end novo #end // === RETALHO A #local a11 = transf1(transf2(< 0,0,0 >)); #local a12 = transf1(transf2(< 0.5, 0, -0.3>)); #local a13 = transf1(transf2(< 1, 0, -0.1>)); #local a21 = transf1(transf2(< 0,1,0>)); #local a22 = transf1(transf2(< 0.5, 1, -0.3>)); #local a23 = transf1(transf2(< 1, 1, -0.1>)); #local a31 = transf1(transf2(< 0, 1, 1>)); #local a32 = transf1(transf2(< 0.5, 1, 1>)); #local a33 = transf1(transf2(<1,1, 1>)); #local a41 = transf1(transf2(< 0, 0, 1>)); #local a42 = transf1(transf2(< 0.5, 0, 1>)); #local a43 = transf1(transf2(<1,0.0, 1>)); // == RETALHO B #local b12 = transf1(transf2(< 2, 0,-0.1>)); #local b13 = transf1(transf2(<2.5,0,0>)); #local b22 = transf1(transf2(<2, 1, -0.1>)); #local b23 = transf1(transf2(<2.5,1,0>)); #local b32 = transf1(transf2(<2, 1, 1>)); #local b33 = transf1(transf2(<2.5, 1, 1>)); #local b42 = transf1(transf2(<2, 0, 1>)); #local b43 = transf1(transf2(<2.5, 0, 1>)); // == INTERSECAO A/B #local a14 = (a13+b12)/2; #local b11 = a14; #local a24 = (a23+b22)/2; #local b21 = a24; #local a34 = (a33+b32)/2; #local b31 = a34; #local a44 = (a43+b42)/2; #local b41 = a44; // == RETALHO C #local c12 = transf1(transf2(<3,0,0.2>)); #local c13 = transf1(transf2(<3.7,0,0.3>)); #local c14 = transf1(transf2(<4.6,0,0.35>)); #local c22 = transf1(transf2(<3, 0.6, 0.3>)); #local c23 = transf1(transf2(<3.7, 0.6, 0.35>)); #local c24 = c14; #local c32 = transf1(transf2(<3, 0.6, 0.7>)); #local c33 = transf1(transf2(<3.7, 0.6, 0.6>)); #local c34 = c14; #local c42 = transf1(transf2(<3, 0, 0.7>)); #local c43 = transf1(transf2(<3.7, 0, 0.6>)); #local c44 = c14; // == INTERSECAO B/C #local b14 = (b13+c12)/2; #local c11 = b14; #local b24 = (b23+c22)/2; #local c21 = b24; #local b34 = (b33+c32)/2; #local c31 = b34; #local b44 = (b43+c42)/2; #local c41 = b44; // == Fechar traseira #local t11=a11; #local t12=t11; #local t13=t11; #local t14=t11; #local t21=a21; #local t22=2*t21-a22; #local t23=; #local t24=; #local t31=a31; #local t32=2*t31-a32; #local t33=; #local t34=; #local t41=a41; #local t42=t41; #local t43=t41; #local t44=t41; #declare lateral = union{ object{ retalho(a11,a12,a13,a14,a21,a22,a23,a24,a31,a32,a33,a34,a41,a42,a43,a44, 0.003, tx_marrom, tx_cinza)} object{ retalho(b11,b12,b13,b14,b21,b22,b23,b24,b31,b32,b33,b34,b41,b42,b43,b44, 0.003, tx_marrom, tx_cinza)} object{ retalho(c11,c12,c13,c14,c21,c22,c23,c24,c31,c32,c33,c34,c41,c42,c43,c44, 0.003, tx_marrom, tx_cinza)} object{asa translate<2,0.1,0.2> scale<1,3,1> texture { tx_cinza } } } union{ object{ eixos(3.00) } object{ lateral } object{ lateral scale<1,-1,1>} object{ retalho(t11,t12,t13,t14,t21,t22,t23,t24,t31,t32,t33,t34,t41,t42,t43,t44, 0.003, tx_marrom, tx_cinza)} } #include "camlight.inc" #declare centro_cena = < 0.7, -0.5, 3.75 >; #declare raio_cena = 10; #declare dir_camera = < -1, -6.00, 1.00 >; #declare dist_camera = 20.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)