// Last edited on 2003-12-07 12:21:38 by stolfi
#declare N=14; // numero de pares de patas
#declare BASE=5;
// ======================================================================
#declare ctr = < N*BASE/2, 0.00, 0.00 >;
#declare camDir = < -15,60,50 >;
camera {
location ctr + 1.40*camDir
right -1.00*x
up 0.75*y
sky z
look_at ctr
}
// ======================================================================
// FONTES DE LUZ
light_source {
10 * < +15.0, +60.0, +100.0 > // Posição da lâmpada.
color rgb 1.2 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz.
}
// ======================================================================
// DESCRIÇÃO DA CENA
background{ color rgb < 0.75, 0.80, 0.85 > }
#declare semente=seed(516235176);
#macro cor(R,G,B)
texture {
pigment { color rgb < R,G,B > }
finish { diffuse 0.5 specular 0.5 roughness 0.03 ambient 0.5 }
}
#end
#declare cabeca =
sphere { <-BASE,0,0> BASE cor(0.8,0.6,0.3) }
#macro abdomen(X)
torus {
BASE
BASE/2
rotate < 0,0,-90 >
translate < X*BASE,0,0 >
cor(0.8,0.6,0.3)
}
#end
#macro fundos(X)
cone {
<0,0,0>
BASE
0
cor(0.8,0.6,0.3)
translate < X*BASE-BASE/2,0,0 >
}
#end
#declare tokenperna =
union {
cylinder { <0,0,-0.3*BASE> <0,0,0.3*BASE> 0.1*BASE cor(0.25,0.25,0.25) }
cylinder { <0,0,0> <0,BASE,0> 0.1*BASE cor(0.8,0.6,0.3) }
}
#macro subsubsubperna(d)
tokenperna
rotate d*z
#end
#macro subsubperna(c,d)
union {
object { tokenperna }
object {
subsubsubperna(d)
translate <0,BASE,0>
}
rotate c*z
}
#end
#macro subperna(b,c,d)
union {
object { tokenperna }
object {
subsubperna(c,d)
translate <0,BASE,0>
}
rotate b*z
}
#end
#macro perna(X,a,b,c,d)
union {
object { tokenperna }
object {
subperna(b,c,d)
translate <0,BASE,0>
}
rotate a*z
translate < 0,3*X/2,0 >
}
#end
#macro ang()
45-90*rand(semente)
#end
object { cabeca }
#declare i=0;
#while (i }
object { perna(BASE,ang(),ang(),ang(),ang()) rotate <180,0,0> translate }
#declare i=i+1;
#end
fundos(N)