// Last edited on 2003-12-09 04:16:55 by stolfi
// Exemplo de arquivo de descricao de cena para POV-ray
#include "colors.inc"
// ======================================================================
#declare vel = 1.00;
#declare ctr = < -0.20, 0.00, 0.00 > - clock*vel*x;
#declare camDir = < 10.00, 30.00, 7.00 >;
// sphere{ ctr, 2 texture{ pigment{ color rgb <1,0,1> } finish { ambient 0.6 diffuse 0.4 } } }
camera {
location ctr + 0.60*camDir
right -0.80*x
up 0.60*y
sky z
look_at ctr
}
// ======================================================================
// FONTES DE LUZ
light_source {
10 * < +10.0, +10.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 * < +30.0, +10.0, +15.0 > // Posição da lâmpada.
color rgb 0.7 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz.
}
light_source {
10 * < -10.0, 30.0, +15.0 > // Posição da lâmpada.
color rgb 0.7 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz.
}
// ======================================================================
// DESCRIÇÃO DA CENA
background{ color rgb < 0.5, 0.70, 0.65 > }
#declare tx_chao=
texture{
pigment{
checker 0.5*Orange+0.5*Gray80, 0.5*Red+0.5*Gray80
scale 0.5*vel
}
}
#declare chao = plane{z,-3.5 texture{tx_chao}}
#declare corpo= difference{sphere{<0,0,0>,5 pigment{Red}}
box{<-5,5,0>,<5,-5,-5> pigment {Black}}
}
object{chao}
#declare gerador=seed(235);
#declare a=0;
union{object{corpo}
#while (a<6)
#if (mod(int(a/2),2)=mod(a,2))
#declare clockp=clock;
#else
#declare clockp=mod(clock+0.5,1);
#end
#declare pt1=cylinder{<0,0,0>,<0,0,-0.7>,0.5 pigment{Yellow}}
#declare pt2=union{cylinder{<0,0,0>,<0,0,-1>,0.5 pigment{Cyan}}
object{pt1
#if(clockp<0.5)
rotate (15*sin((180*clockp)/0.5)*y)
#else
rotate(-10*sin((180*(clockp-0.5))/0.5)*y)
#end
translate<0,0,-1>}
}
#declare pt3=union{cylinder{<0,0,0>,<0,0,-1>,0.5 pigment{Blue}}
object{pt2
#if(clockp<0.5)
rotate (20*sin((180*clockp)/0.5)*y)
#else
rotate(-15*sin((180*(clockp-0.5))/0.5)*y)
#end
translate<0,0,-1>}
}
#declare pata=union{cylinder{<0,0,0>,<0,0,-1.2>,0.5 pigment{Green}}
object{pt3
#if(clockp<0.5)
rotate (20*sin((180*clockp)/0.5)*y)
#else
rotate(-10*sin((180*(clockp-0.5))/0.5)*y)
#end
translate<0,0,-1.2>}
}
// Aqui está a cena, finalmente:
object{pata
#if (mod(a,2)=0)
#if(clockp<0.5)
rotate (30*sin((180*clockp)/0.5)*y)
#else
rotate(-15*sin((180*(clockp-0.5))/0.5)*y)
#end
translate
#else
#if(clockp<0.5)
rotate (30*sin((180*clockp)/0.5)*y)
#else
rotate(-15*sin((180*(clockp-0.5))/0.5)*y)
#end
translate
#end}
#declare a=a+1;
#end
translate<-clock*vel-0.2,0,0>
}