// MC930 - Trabalho final parte 4 // Last edited on 2001-01-11 12:00:40 by Alencar N. S. Junior // MONUMENTO #include "textures.inc" #include "colors.inc" #include "stones.inc" #include "golds.inc" #include "stones1.inc" #include "stones2.inc" #include "metals.inc" #include "skies.inc" #declare centro_do_monumento = < 0, 2, 6 >; #declare Textura = T_Stone1 ///////////////////////////////////////////////////////////// //*********LATERAIS DA VIGA DEFLEXIONADA********************* ///////////////////////////////////////////////////////////// //pontos para a superficie de Bezier-A #declare A1 = <1,4,2>; #declare A2 = <2.5+0.5,4,2.6>; #declare A3 = <2.7+1,3,2.8>; #declare A4 = <3,2,3>; #declare A5 = <1,4,1.6>; #declare A6 = <2.5+0.5,4,2.2>; #declare A7 = <2.7+1,3,2.4>; #declare A8 = <3,2,2.6>; #declare A9 = <1,4,1.3>; #declare A10 = <2.5+0.5,4,1.9>; #declare A11 = <2.7+1,3,2.1>; #declare A12 = <3,2,2.3>; #declare A13 = <1,4,0.8>; #declare A14 = <2.5+0.5,4,1.6>; #declare A15 = <2.7+1,3,1.8>; #declare A16 = <3,2,2>; #declare patchA = //Superficie de Bezier-A em si bicubic_patch { type 1 flatness 0.1 u_steps 4 v_steps 4, A1,A2,A3,A4, A5,A6,A7,A8, A9,A10,A11,A12, A13,A14,A15,A16 } //pontos para a superficie de Bezier-B #declare B1 = <3,2,3>; #declare B2 = <3,1.5-0.5,3.2>; #declare B3 = <-1.5,1.5+0.5,3.8>; #declare B4 = <-1.5,1,4>; #declare B5 = <3,2,2.5>; #declare B6 = <3,1.5-0.5,2.8>; #declare B7 = <-1.5,1.5+0.5,3.4>; #declare B8 = <-1.5,1,3.6>; #declare B9 = <3,2,2.3>; #declare B10 = <3,1.5-0.5,2.5>; #declare B11 = <-1.5,1.5+0.5,3.1>; #declare B12 = <-1.5,1,3.3>; #declare B13 = <3,2,2>; #declare B14 = <3,1.5-0.5,2.2>; #declare B15 = <-1.5,1.5+0.5,2.8>; #declare B16 = <-1.5,1,3>; #declare patchB = //Superficie de Bezier-B em si bicubic_patch { type 1 flatness 0.1 u_steps 4 v_steps 4, B1,B2,B3,B4, B5,B6,B7,B8, B9,B10,B11,B12, B13,B14,B15,B16 } //pontos para a superficie de Bezier-C #declare C1 = <-1.5,1,4>; #declare C2 = <-1-0.5,0.8-1,4.2>; #declare C3 = <-0.5-0.5,0.7-0.5,4.8>; #declare C4 = <0,0.5,8>; #declare C5 = <-1.5,1,3.6>; #declare C6 = <-1-0.5,0.8-1,3.8>; #declare C7 = <-0.5-0.5,0.7-0.5,4.4>; #declare C8 = <0,0.5,4.6>; #declare C9 = <-1.5,1,3.3>; #declare C10 = <-1-0.5,0.8-1,3.5>; #declare C11 = <-0.5-0.5,0.7-0.5,4.1>; #declare C12 = <0,0.5,4.3>; #declare C13 = <-1.5,1,3>; #declare C14 = <-1-0.5,0.8-1,3.2>; #declare C15 = <-0.5-0.5,0.7-0.5,3.8>; #declare C16 = <0,0.5,2>; #declare patchC = //Superficie de Bezier-B em si bicubic_patch { type 1 flatness 0.1 u_steps 4 v_steps 4, C1,C2,C3,C4, C5,C6,C7,C8, C9,C10,C11,C12, C13,C14,C15,C16 } //pontos para a superficie de Bezier-D #declare D1 = <1,3.5,2>; #declare D2 = <2.5+0.5,3.5,2.6>; #declare D3 = <2.2+1,3,2.8>; #declare D4 = <2.5,2.5,3>; #declare D5 = <1,3.5,1.6>; #declare D6 = <2.5+0.5,3.5,2.2>; #declare D7 = <2.2+1,3,2.4>; #declare D8 = <2.5,2.5,2.6>; #declare D9 = <1,3.5,1.3>; #declare D10 = <2.5+0.5,3.5,1.9>; #declare D11 = <2.2+1,3,2.1>; #declare D12 = <2.5,2.5,2.3>; #declare D13 = <1,3.5,0.8>; #declare D14 = <2.5+0.5,3.5,1.6>; #declare D15 = <2.2+1,3,1.8>; #declare D16 = <2.5,2.5,2>; #declare patchD = //Superficie de Bezier-A em si bicubic_patch { type 1 flatness 0.1 u_steps 4 v_steps 4, D1,D2,D3,D4, D5,D6,D7,D8, D9,D10,D11,D12, D13,D14,D15,D16 } //pontos para a superficie de Bezier-E #declare E1 = <2.5,2.5,3>; #declare E2 = <2.5,2-0.5,3.2>; #declare E3 = <-2,2+0.5,3.8>; #declare E4 = <-2,1.5,4>; #declare E5 = <2.5,2.5,2.6>; #declare E6 = <2.5,2-0.5,2.8>; #declare E7 = <-2,2+0.5,3.4>; #declare E8 = <-2,1.5,3.6>; #declare E9 = <2.5,2.5,2.3>; #declare E10 = <2.5,2-0.5,2.5>; #declare E11 = <-2,2+0.5,3.1>; #declare E12 = <-2,1.5,3.3>; #declare E13 = <2.5,2.5,2>; #declare E14 = <2.5,2-0.5,2.2>; #declare E15 = <-2,2+0.5,2.8>; #declare E16 = <-2,1.5,3>; #declare patchE = //Superficie de Bezier-E em si bicubic_patch { type 1 flatness 0.1 u_steps 4 v_steps 4, E1,E2,E3,E4, E5,E6,E7,E8, E9,E10,E11,E12, E13,E14,E15,E16 } //pontos para a superficie de Bezier-F #declare F1 = <-2,1.5,4>; #declare F2 = <-1.5-0.5,1.3-1,4.2>; #declare F3 = <-1-0.5,-0.5-0.5,4.8>; #declare F4 = <0,0,8>; #declare F5 = <-2,1.5,3.6>; #declare F6 = <-1.5-0.5,1.3-1,3.8>; #declare F7 = <-1-0.5,-0.5-0.5,4.4>; #declare F8 = <0,0,4.6>; #declare F9 = <-2,1.5,3.3>; #declare F10 = <-1.5-0.5,1.3-1,3.5>; #declare F11 = <-1-0.5,-0.5-0.5,4.1>; #declare F12 = <0,0,4.3>; #declare F13 = <-2,1.5,3>; #declare F14 = <-1.5-0.5,1.3-1,3.2>; #declare F15 = <-1-0.5,-0.5-0.5,3.8>; #declare F16 = <0,0,2>; #declare patchF = //Superficie de Bezier-F em si bicubic_patch { type 1 flatness 0.1 u_steps 4 v_steps 4, F1,F2,F3,F4, F5,F6,F7,F8, F9,F10,F11,F12, F13,F14,F15,F16 } ///////////////////////////////////////////////////////////// //*************TOPO DA VIGA DEFLEXIONADA********************* ///////////////////////////////////////////////////////////// //pontos para a superficie de Bezier-G #declare G1 = <1,4,2>; #declare G2 = <2.5+0.5,4,2.6>; #declare G3 = <2.7+1,3,2.8>; #declare G4 = <3,2,3>; #declare G5 = <1,4,2>; #declare G6 = <2.5+0.5,4,2.6>; #declare G7 = <2.7+1,3,2.8>; #declare G8 = <3,2,3>; #declare G9 = <1,3.5,2>; #declare G10 = <2.5+0.5,3.5,2.6>; #declare G11 = <2.2+1,3,2.8>; #declare G12 = <2.5,2.5,3>; #declare G13 = <1,3.5,2>; #declare G14 = <2.5+0.5,3.5,2.6>; #declare G15 = <2.2+1,3,2.8>; #declare G16 = <2.5,2.5,3>; #declare patchG = //Superficie de Bezier-G em si bicubic_patch { type 1 flatness 0.1 u_steps 4 v_steps 4, G1,G2,G3,G4, G5,G6,G7,G8, G9,G10,G11,G12, G13,G14,G15,G16 } //pontos para a superficie de Bezier-H #declare H1 = <3,2-0.1,3>; #declare H2 = <3+0.5,1.5-0.5,3.2>; #declare H3 = <-1.5,1.5+0.5,3.8>; #declare H4 = <-1.5,1,4>; #declare H5 = <3,2-0.1,3>; #declare H6 = <3+0.5,1.5-0.5,3.2>; #declare H7 = <-1.5,1.5+0.5,3.8>; #declare H8 = <-1.5,1,4>; #declare H9 = <2.5,2.5,3>; #declare H10 = <2.5,2-0.5,3.2>; #declare H11 = <-2,2+0.5+0.5,3.8>; #declare H12 = <-2,1.5,4-0.1>; #declare H13 = <2.5,2.5,3>; #declare H14 = <2.5,2-0.5,3.2>; #declare H15 = <-2,2+0.5+0.5,3.8>; #declare H16 = <-2,1.5,4-0.1>; #declare patchH = //Superficie de Bezier-H em si bicubic_patch { type 1 flatness 0.1 u_steps 4 v_steps 4, H1,H2,H3,H4, H5,H6,H7,H8, H9,H10,H11,H12, H13,H14,H15,H16 } //pontos para a superficie de Bezier-I #declare I1 = <-1.5,1,4>; #declare I2 = <-1-0.5,0.8-1,4.2>; #declare I3 = <-0.5-0.5,0.7-0.5,4.8>; #declare I4 = <0,0.5,8>; #declare I5 = <-1.5,1,4>; #declare I6 = <-1-0.5,0.8-1,4.2>; #declare I7 = <-0.5-0.5,0.7-0.5,4.8>; #declare I8 = <0,0.5,8>; #declare I9 = <-2,1.5,4>; #declare I10 = <-1.5-0.5,1.3-1,4.2>; #declare I11 = <-1-0.5,-0.5-0.5,4.8>; #declare I12 = <0,0,8>; #declare I13 = <-2,1.5,4>; #declare I14 = <-1.5-0.5,1.3-1,4.2>; #declare I15 = <-1-0.5,-0.5-0.5,4.8>; #declare I16 = <0,0,8>; #declare patchI = //Superficie de Bezier-I em si bicubic_patch { type 1 flatness 0.1 u_steps 4 v_steps 4, I1,I2,I3,I4, I5,I6,I7,I8, I9,I10,I11,I12, I13,I14,I15,I16 } #declare viga = union { // Casca externa object {patchA texture {Textura }} object {patchB texture {Textura }} object {patchC texture {Textura }} // Casca interna object {patchD texture {Textura }} object {patchE texture {Textura }} object {patchF texture {Textura }} //TOPO object {patchG texture{Textura }} object {patchH texture{Textura }} object {patchI texture{Textura }} } #declare pedestal = union { object {viga} box { <0,4,0> <1,3.5,2> texture{ Textura } } box { <0,0.5,0> <1,0,10> texture{ Textura } } union{ text { ttf "timrom.ttf" "1" 0.1, 0 scale <0.3,0.3,0.3> translate <-0.5,1.6,-4.01>} text { ttf "timrom.ttf" "7" 0.1, 0 scale <0.3,0.3,0.3> translate <-0.5,1.3,-4.01>} text { ttf "timrom.ttf" "7" 0.1, 0 scale <0.3,0.3,0.3> translate <-0.5,1.0,-4.01>} text { ttf "timrom.ttf" "4" 0.1, 0 scale <0.3,0.3,0.3> translate <-0.5,0.7,-4.01>} texture {T_Copper_3A } rotate <90,0,0> scale <-1,1,1> } } #declare tremulado= cylinder { <0.5,3.75,2>, <0.5,3.75,2.8>, 0.05 texture {T_Chrome_1A} } #declare coroa= difference { cylinder { <0.5,3.75,3.88>, <0.5,3.75,4.03>, 0.15 } cylinder { <0.5,3.75,3.88>, <0.5,3.75,4.03>, 0.13 } sphere { <0.5,3.12,4.41>, 0.87 } } #declare coracao = union { cylinder { <0.43,4.1,3.3>, <0.43,3.4,3.3>, 0.08 } cylinder { <0.57,4.1,3.3>, <0.57,3.4,3.3>, 0.08 } prism { linear_sweep linear_spline 3.4, // sweep the following shape from here ... 4.1, // ... up through here 3, // the number of points making up the shape ... <0.35,3.25>, <0.65,3.25>, <0.5,3.05> } cylinder { <0.5,4.1,3.25>, //para corrigir um ponto no centro do coracao <0.5,3.4,3.25>, 0.02 } } #declare estatua = union { // SAIA cylinder { <0.5,3.75,2>, <0.5,3.75,2.8>, 0.1 texture {T_Chrome_1A} } object {tremulado translate <0.1,0,0>} object {tremulado translate <-0.1,0,0>} object {tremulado translate <0,0.1,0>} object {tremulado translate <0,-0.1,0>} // TRONCO difference { prism { linear_sweep linear_spline 3.65, // sweep the following shape from here ... 3.85, // ... up through here 6, // the number of points making up the shape ... <0.3,3.5>, <0.3,3>, <0.35,2.8>, <0.65,2.8>, <0.7,3>, <0.7,3.5> texture {T_Chrome_1A} } object {coracao} } // PESCOCO cylinder { <0.5,3.75,3.4>, <0.5,3.75,3.71>, 0.06 texture {T_Chrome_1A} } // CABECA sphere {<0.5,3.75,3.8>, 0.15 texture {T_Chrome_1A}} sphere {<0.5,3.65,3.78>, 0.15 texture {T_Chrome_1A}} object {coroa texture {T_Chrome_1A} } } #declare monumento = union { object{pedestal} object{estatua } } // PAVIMENTO #declare pavimento = plane{ z, -1 texture{ pigment{ checker color rgb < 0.80, 0.80, 0.80 >, color rgb < 0.20, 0.70, 1.00 > } } } // FUNDO object {O_Cloud2 rotate <90,0,0> } // EIXOS #declare eixos_cartesianos = union { cylinder { <0,0,0>, <7,0,0>, 0.02 pigment { color rgb <1,0,0> } } cylinder { <0,0,0>, <0,7,0>, 0.02 pigment { color rgb <0,1,0> } } cylinder { <0,0,0>, <0,0,7>, 0.02 pigment { color rgb <0,0,1> } } } //object { eixos_cartesianos } object { pavimento translate <0,0,1>} object { monumento } // CÂMERA #declare centro_da_cena = centro_do_monumento; #declare raio_da_cena = 5; #declare direcao_da_camera = vnormalize( <0.5,1,0> ); #declare dist_da_camera = 6.0 * raio_da_cena #declare pos_da_camera = centro_da_cena + dist_da_camera * direcao_da_camera; camera { location pos_da_camera right < -0.64, 0.00, 0.00 > up < 0.00, 0.48, 0.00 > sky z look_at centro_da_cena } // ILUMINAÇÃO #declare direcao_da_luz = vrotate(direcao_da_camera, < 10, 10, 10 >); #declare intens_da_luz = 1.25; light_source { 20 * raio_da_cena * direcao_da_luz color rgb < 1, 1, 1 > } light_source { 20 * raio_da_cena * < 1, 0, 1 > color rgb intens_da_luz * < 0.6, 1, 1 > } light_source { 2* < 0.5, 3.75, 0 > color rgb 2 * < 1, 1, 1 > }