// Last edited on 2003-06-28 04:07:12 by stolfi #include "colors.inc" background{ color White } camera { location 1.8 * <10,0,-20> right 0.80*x up 0.60*y sky y look_at <0,0,0> } light_source { 50*<+10, 15, -7> color 1.2*White } light_source { 50*<-15, 20, -10> color 0.6*White } light_source { 50*< -2, 2, -10> color 0.6*White } #declare anel = torus { 2, 0.25 pigment { checker Blue, Cyan scale <0.5,50.0,0.5> translate 25*y } } #declare cilindro = cylinder { < -3, 0, 0 > < +3, 0, 0 >, 1.5 pigment { checker Orange, Red scale <0.5,0.5,0.5> translate 25*y } } #declare caixa = box { <-2, +2, +2>, <+2, -2, -2> pigment { checker Green, color rgb < 0.1, 0.6, 0.0 > scale <0.5,0.5,0.5> translate 25*y } } #declare furo = cylinder { < -2.5, 0, 0 > < +2.5, 0, 0 >, 1.5 } #declare parafuso = difference { object { caixa } object { furo } } #declare prisma = prism { conic_sweep linear_spline 0, 1, 5, <2,2>,<-2,2>,<-2,-2>,<2,-2>,<2,2> pigment { checker White, Orange scale <0.5,0.5,0.5> translate 25*y } rotate <180, 0, 0> translate <0, 1, 0> scale <1, 3, 1> rotate <0, 0, 90> } #declare furoprisma = cylinder { < -0.5, 0, 0 > < +0.5, 0, 0 >, 1.5 } #declare ponta = difference { object { prisma } object { furoprisma } } /////////// Clock #if (clock < 0.05) #declare xp = 10; #declare yp = -8; #declare zp = 6; #declare xa1 = -8; #declare ya1 = 7; #declare za1 = -5; #declare xa2 = 10; #declare ya2 = 6; #declare za2 = 0; #declare xt1 = -6; #declare yt1 = 4; #declare zt1 = 0; #declare xt2 = 6; #declare yt2 = -4; #declare zt2 = 0; #declare rp = 0; #else #if (clock < 0.20) #declare xp = 10; #declare yp = -8; #declare zp = 6; #declare xa1 = -8+5*((clock-0.05)/0.15); #declare ya1 = 7-7*((clock-0.05)/0.15); #declare za1 = -5+5*((clock-0.05)/0.15); #declare xa2 = 10; #declare ya2 = 6; #declare za2 = 0; #declare xt1 = -6; #declare yt1 = 4; #declare zt1 = 0; #declare xt2 = 6; #declare yt2 = -4; #declare zt2 = 0; #declare rp = 0; #else #if (clock < 0.35) #declare xp = 10; #declare yp = -8; #declare zp = 6; #declare xa1 = -3+1*((clock-0.2)/0.15); #declare ya1 = 0; #declare za1 = 0; #declare xa2 = 10; #declare ya2 = 6; #declare za2 = 0; #declare xt1 = -6+3*((clock-0.2)/0.15); #declare yt1 = 4-4*((clock-0.2)/0.15); #declare zt1 = 0; #declare xt2 = 6; #declare yt2 = -4; #declare zt2 = 0; #declare rp = 0; #else #if (clock < 0.50) #declare xp = 10-7*((clock-0.35)/0.15); #declare yp = -8+8*((clock-0.35)/0.15); #declare zp = 6-6*((clock-0.35)/0.15); #declare xa1 = -2; #declare ya1 = 0; #declare za1 = 0; #declare xa2 = 10; #declare ya2 = 6; #declare za2 = 0; #declare xt1 = -3+0.5*((clock-0.35)/0.15); #declare yt1 = 0; #declare zt1 = 0; #declare xt2 = 6; #declare yt2 = -4; #declare zt2 = 0; #declare rp = 0; #else #if (clock < 0.65) #declare xp = 3-3*((clock-0.5)/0.15); #declare yp = 0; #declare zp = 0; #declare xa1 = -2; #declare ya1 = 0; #declare za1 = 0; #declare xa2 = 10-7*((clock-0.5)/0.15); #declare ya2 = 6-6*((clock-0.5)/0.15); #declare za2 = 0; #declare xt1 = -2.5; #declare yt1 = 0; #declare zt1 = 0; #declare xt2 = 6; #declare yt2 = -4; #declare zt2 = 0; #declare rp = clock*90/0.2; #else #if (clock < 0.80) #declare xp = 0; #declare yp = 0; #declare zp = 0; #declare xa1 = -2; #declare ya1 = 0; #declare za1 = 0; #declare xa2 = 3-1*((clock-0.65)/0.15); #declare ya2 = 0; #declare za2 = 0; #declare xt1 = -2.5; #declare yt1 = 0; #declare zt1 = 0; #declare xt2 = 6-3*((clock-0.65)/0.15); #declare yt2 = -4+4*((clock-0.65)/0.15); #declare zt2 = 0; #declare rp = 0; #else #if (clock < 0.95) #declare xp = 0; #declare yp = 0; #declare zp = 0; #declare xa1 = -2; #declare ya1 = 0; #declare za1 = 0; #declare xa2 = 2; #declare ya2 = 0; #declare za2 = 0; #declare xt1 = -2.5; #declare yt1 = 0; #declare zt1 = 0; #declare xt2 = 3-0.5*((clock-0.8)/0.15); #declare yt2 = 0; #declare zt2 = 0; #declare rp = 0; #else #declare xp = 0; #declare yp = 0; #declare zp = 0; #declare xa1 = -2; #declare ya1 = 0; #declare za1 = 0; #declare xa2 = 2; #declare ya2 = 0; #declare za2 = 0; #declare xt1 = -2.5; #declare yt1 = 0; #declare zt1 = 0; #declare xt2 = 2.5; #declare yt2 = 0; #declare zt2 = 0; #declare rp = 0; #end #end #end #end #end #end #end /////////// Pedacos do Corpo do Macaco ////////// Montagem Final union { object { cilindro } object { parafuso translate<0, 0, 0> rotate translate } object { anel rotate<0,0,90> translate } object { anel rotate<0,0,90> translate } object { ponta translate } object { ponta rotate<0,180,0> translate } }