// Last edited on DATE TIME by USER // Processed by remove-cam-lights background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_aviao = texture{ pigment{ color rgb < 0.90, 0.90, 0.90 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_grade = texture{ pigment{ color rgb < 0.0, 0.0, 0.0 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #include "textures.inc" #include "eixos.inc" #include "retalho.inc" #declare raio = 2.000; #declare asa1 = box{ < 12, 1, 3 >, < 14, 9, 4 > texture{ tx_aviao } } #declare asa2 = box{ < 12, -9, 3 >, < 14, -1, 4 > texture{ tx_aviao } } #macro deform(P) #local cons = 1*sin(pi*P.y/10); #end #macro deform2(P) #local cons = -0.5*sin(pi*P.y/10); #end #macro deform3(P) #local cons = -1*sin(pi*P.y/10); #end #macro aviao(z11, z12, z13, z14, z21, z22, z23, z24, z31, z32, z33, z34, a21, a22, a23, a24, a31, a32, a33, a34, b21, b22, b23, b24, b31, b32, b33, b34, c21, c22, c23, c24, c31, c32, c33, c34, w21, w22, w23, w24, w31, w32, w33, w34, w41, w42, w43, w44 ) union{ #local z41 = (z31+a21)/2; #local z42 = (z32+a22)/2; #local z43 = (z33+a23)/2; #local z44 = (z34+a24)/2; #local a11 = z41; #local a12 = z42; #local a13 = z43; #local a14 = z44; #local a41 = (a31+b21)/2; #local a42 = (a32+b22)/2; #local a43 = (a33+b23)/2; #local a44 = (a34+b24)/2; #local b11 = a41; #local b12 = a42; #local b13 = a43; #local b14 = a44; #local b41 = (b31+c21)/2; #local b42 = (b32+c22)/2; #local b43 = (b33+c23)/2; #local b44 = (b34+c24)/2; #local c11 = b41; #local c12 = b42; #local c13 = b43; #local c14 = b44; #local c41 = (c31+w21)/2; #local c42 = (c32+w22)/2; #local c43 = (c33+w23)/2; #local c44 = (c34+w24)/2; #local w11 = c41; #local w12 = c42; #local w13 = c43; #local w14 = c44; object{ retalho( z11, z12, z13, z14, z21, z22, z23, z24, z31, z32, z33, z34, z41, z42, z43, z44, 0.005, tx_grade, tx_aviao ) } object{ retalho( a11, a12, a13, a14, a21, a22, a23, a24, a31, a32, a33, a34, a41, a42, a43, a44, 0.005, tx_grade, tx_aviao ) } object{ retalho( b11, b12, b13, b14, b21, b22, b23, b24, b31, b32, b33, b34, b41, b42, b43, b44, 0.005, tx_grade, tx_aviao ) } object{ retalho( c11, c12, c13, c14, c21, c22, c23, c24, c31, c32, c33, c34, c41, c42, c43, c44, 0.005, tx_grade, tx_aviao ) } object{ retalho( w11, w12, w13, w14, w21, w22, w23, w24, w31, w32, w33, w34, w41, w42, w43, w44, 0.005, tx_grade, tx_aviao ) } object{ retalho( z11, z12, z13, z14, z21, z22, z23, z24, z31, z32, z33, z34, z41, z42, z43, z44, 0.005, tx_grade, tx_aviao ) scale < 1, -1, 1 > } object{ retalho( a11, a12, a13, a14, a21, a22, a23, a24, a31, a32, a33, a34, a41, a42, a43, a44, 0.005, tx_grade, tx_aviao ) scale < 1, -1, 1 > } object{ retalho( b11, b12, b13, b14, b21, b22, b23, b24, b31, b32, b33, b34, b41, b42, b43, b44, 0.005, tx_grade, tx_aviao ) scale < 1, -1, 1 > } object{ retalho( c11, c12, c13, c14, c21, c22, c23, c24, c31, c32, c33, c34, c41, c42, c43, c44, 0.005, tx_grade, tx_aviao ) scale < 1, -1, 1 > } object{ retalho( w11, w12, w13, w14, w21, w22, w23, w24, w31, w32, w33, w34, w41, w42, w43, w44, 0.005, tx_grade, tx_aviao ) scale < 1, -1, 1 > } object{ asa1 } object{ asa2 } } #end #macro aviao_deformado(z11, z12, z13, z14, z21, z22, z23, z24, z31, z32, z33, z34, a21, a22, a23, a24, a31, a32, a33, a34, b21, b22, b23, b24, b31, b32, b33, b34, c21, c22, c23, c24, c31, c32, c33, c34, w21, w22, w23, w24, w31, w32, w33, w34, w41, w42, w43, w44 ) union{ #local d21 = a21 + deform(a21); #local d22 = a22 + deform(a22); #local d23 = a23 + deform(a23); #local d24 = a24 + deform(a24); #local d31 = a31 + deform(a31); #local d32 = a32 + deform(a32); #local d33 = a33 + deform(a33); #local d34 = a34 + deform(a34); #local e21 = b21 + deform2(b21); #local e22 = b22 + deform2(b22); #local e23 = b23 + deform2(b23); #local e24 = b24 + deform2(b24); #local e31 = b31 + deform2(b31); #local e32 = b32 + deform2(b32); #local e33 = b33 + deform2(b33); #local e34 = b34 + deform2(b34); #local f21 = c21 + deform3(c21); #local f22 = c22 + deform3(c22); #local f23 = c23 + deform3(c23); #local f24 = c24 + deform3(c24); #local f31 = c31 + deform3(c31); #local f32 = c32 + deform3(c32); #local f33 = c33 + deform3(c33); #local f34 = c34 + deform3(c34); object { aviao(z11, z12, z13, z14, z21, z22, z23, z24, z31, z32, z33, z34, d21, d22, d23, d24, d31, d32, d33, d34, e21, e22, e23, e24, e31, e32, e33, e34, f21, f22, f23, f24, f31, f32, f33, f34, w21, w22, w23, w24, w31, w32, w33, w34, w41, w42, w43, w44 ) } } #end #macro interpol2(ta,A,tb,B,tt) #local s = (tt-ta)/(tb-ta); ((1-s)*A+s*B); #end #macro interpol4(ta,A,B,C,D,td,tt) #local AB = interpol2(ta,A,td,B,tt); #local BC = interpol2(ta,B,td,C,tt); #local CD = interpol2(ta,C,td,D,tt); #local ABC = interpol2(ta,AB,td,BC,tt); #local BCD = interpol2(ta,BC,td,CD,tt); #local ABCD = interpol2(ta,ABC,td,BCD,tt); ABCD #end union{ object{ eixos(3.00) } #local curv_a1 = < 0, 0, 0 >; #local curv_a2 = < -20, 10, 20 >; #local curv_a3 = < -5, 15, 15 >; #local curv_a4 = < 0, 5, 10 > ; #local curv_b1 = < 0, 5, 10 >; #local curv_b2 = < 5, -5, 5 >; #local curv_b3 = < 10, -10, 0 >; #local curv_b4 = < 15, -15, -5 >; #local curv_c1 = < 15, -15, -5 >; #local curv_c2 = < 20, -15, -10 >; #local curv_c3 = < 10, -5, -5 >; #local curv_c4 = < 0, 0, 0 >; #local t0 = 0.0; #local t1 = 0.3; #local t2 = 0.6; #local t3 = 1.0; #local X = interpol4(t0,curv_a1,curv_a2,curv_a3,curv_a4,t1,clock); #local Y = interpol4(t1,curv_b1,curv_b2,curv_b3,curv_b4,t2,clock); #local Z = interpol4(t2,curv_c1,curv_c2,curv_c3,curv_c4,t3,clock); object{ aviao(< -3, 0, 2.5 >, < -3, 0, 2.5 >, < -3, 0, 2.5 >, < -3, 0, 2.5 >, < -2, 0, 2.0 >, < -2, 2, 2.0 >, < -2, 2, 3.0 >, < -2, 0, 3.0 >, < -1, 0, 1.0 >, < -1, 4, 1.0 >, < -1, 4, 4.0 >, < -1, 0, 4.0 >, < 2, 0, 0 >, < 2, 4, 0 >, < 2, 4, 5 >, < 2, 0, 5 >, < 4, 0, 0 >, < 4, 4, 0 >, < 4, 4, 6 >, < 4, 0, 6 >, < 10, 0, 0 >, < 10, 4, 0 >, < 10, 4, 6 >, < 10, 0, 6 >, < 18, 0, 0 >, < 18, 4, 0 >, < 18, 4, 6 >, < 18, 0, 6 >, < 22, 0, 0 >, < 22, 4, 0 >, < 22, 4, 3 >, < 22, 0, 3 >, < 25, 0, 0 >, < 25, 3, 0 >, < 25, 3, 2 >, < 25, 0, 2 >, < 26.25, 0.00, 0 >, < 26.25, 2.50, 0 >, < 26.25, 2.50, 6 >, < 26.25, 0.00, 6 >, < 26.25, 0.00, 0 >, < 26.25, 1.25, 0 >, < 26.25, 1.25, 6 >, < 26.25, 0.00, 6 >, < 26.25, 0.00, 0 >, < 26.25, 0.00, 0 >, < 26.25, 0.00, 6 >, < 26.25, 0.00, 6 > ) #if(clock > t0 & clock < t1) translate X rotate X #end #if(clock > t1 & clock < t2) translate Y rotate Y #end #if(clock > t2 & clock < t3) translate Z rotate Z #end } } #include "camlight.inc" #declare centro_cena = < 9.00, 0.00, 1.00 >; #declare raio_cena = 40.0; #declare dir_camera = < -20.00, 20.00, 8.00 >; #declare dist_camera = 75.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)