// Exemplo de arquivo de descricao de cena para POV-ray
// Last edited on 2010-03-04 15:44:01 by stolfi
// ======================================================================
// CORES E TEXTURAS
#include "colors.inc"
#include "textures.inc"
#include "woods.inc"
#include "stones.inc"
background{ color rgb < 1, 1, 1 > }
#declare tx = texture{
pigment { color Blue }
finish { phong 1 }
}
#declare tx_chao =
texture{
pigment{ color rgb < 0.00, 0.00, 0.00 > }
finish{ diffuse 0.9 ambient 0.1 }
}
// aviao para elefantes
// 6 retalhos de bezier (3 retalhos - metade do objeto - e reflete outro igual)
// juntas suaves:
// local A14 = (A13 + B12)/2, B11 = A14
// ======================================================================
// DESCRIÇÃO DA CENA
// Partes da cena:
#declare chao =
box{ <-20,-20,-1>, <+20,+20,0>}
#include "retalho.inc"
#local base = 0;
#local alt = 0.25;
#local largLat = 0.8;
#local prof = 0.25;
#declare altura = alt*3;
#local meioAltura = altura/2;
#local incrAlt = 0.2;
#local largBico = 0.2;
#declare larguraLateral = base+largLat*3;
// fixos lateral
#local a22 = ;
#local a23 = ;
#local a32 = ;
#local a33 = ;
// fixos ponta bico
#local b11 = < base, 0, meioAltura>;
#local b21 = ;
#local b31 = ;
#local b41 = ;
// fixos bico
#local b22 = ;
#local b23 = ;
#local b32 = ;
#local b33 = ;
// calculado juncao bicos
#local b12 = ;
#local b13 = ;
#local b42 = ;
#local b43 = ;
// calculados juncao bico-lateral
#local b24 = (b23+a22)/2;
#local b34 = (b33+a32)/2;
// calculados juncao lateral-bico
#local a21 = b24;
#local a31 = b34;
// calculados juncao laterais
#local a12 = ;
#local a13 = ;
#local a42 = ;
#local a43 = ;
// calculado juncao laterais-bico
#local a11 = (b13+a12)/2;
#local a41 = (b43+a42)/2;
// juncao bico-laterais
#local b14 = a11;
#local b44 = a41;
// calculados juncao lateral-cauda
#local a24 = ;
#local a34 = ;
// calculado juncao laterais-cauda
#local a14 = ;
#local a44 = ;
#declare lateral =
union {
object{retalho(a11,a12,a13,a14,a21,a22,a23,a24,
a31,a32,a33,a34,a41,a42,a43,a44,
0.005,tx,tx)}
}
#declare bico =
union {
object{retalho(b11,b12,b13,b14,b21,b22,b23,b24,
b31,b32,b33,b34,b41,b42,b43,b44,
0.005,tx,tx)}
}
#declare alturaBico = b44.z;
#declare larguraBico = b44.x;
#declare asa =
box{ , }
#declare aviao =
union {
object {lateral translate x*larguraBico}
object {lateral translate x*larguraBico scale <1,-1,1>}
object {bico}
object {bico scale <1,-1,1>}
}
#include "eixos.inc"
// Aqui está a cena, finalmente:
union{
object{ eixos(3.00) }
object{ chao texture{Silver_Metal}}
object{ aviao texture{tx}}
object{ asa texture{tx}}
object{ asa texture{tx} scale<1,-1,1>}
}
#include "camlight.inc"
#declare centro_cena = < 0.00, 0.00, 0.00 >;
#declare raio_cena = 5.0;
#declare dir_camera = < 1, 2, 1 >;
#declare dist_camera = 5.0;
#declare intens_luz = 2.00;
camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)