// POLYHEDRA / Chain of Polyhedra '00.12 // By Tsutomu HIGO E-mail: nj2t-hg@asahi-net.or.jp #version 3.1; global_settings { assumed_gamma 2.2 } camera { location <10,-20,-20> angle 26 look_at <-6,5,0> } light_source { <100,-100,-100> color rgb <1,1,1> } #declare Texsp= texture { pigment { color rgb <0,0,0> } finish { reflection 1 ambient 0.2 phong 1 brilliance 1 diffuse 1 } } #declare Texss= texture { pigment { color rgbt <1,0.5,0.7,0.7> } finish { ambient .5 diffuse .1 reflection 0 specular 0.2 roughness .01 irid { 0.5 thickness 0.7 turbulence 0.1 } } } #declare Rsp=0.1; #declare Rcl=0.05; // #macro Poly12x20 (Ra,Rb,Rc) #declare Pente= intersection { plane { y,Ra rotate z*180/pi*2*1.017221968 } plane { -y,Ra rotate z*180/pi*2*1.017221968 } plane { y,Rb rotate z*180/pi*0.65235814 } plane { -y,Rb rotate z*180/pi*0.65235814 } plane { y,Rb rotate z*180/pi*1.382085796 } plane { -y,Rb rotate z*180/pi*1.382085796 } plane { y,Rc rotate z*-180/pi*0.553574359 } plane { -y,Rc rotate z*-180/pi*0.553574359 } plane { y,Rc rotate z*180/pi*1.017221968 } plane { -y,Rc rotate z*180/pi*1.017221968 } plane { z,Rc } plane { -z,Rc } bounded_by { sphere { <0,0,0> 1.05 } } } intersection { plane { y,Ra } plane { -y,Ra } object { Pente } object { Pente rotate y*72 } object { Pente rotate y*144 } object { Pente rotate y*-72 } object { Pente rotate y*-144 } bounded_by { sphere { <0,0,0> 1.05 } } } #end //Platonic 12f #declare Pl12f=union { #declare Unit12f=union { cylinder { <-0.262865556,1.113516364,-0.809016994> <-0.850650808,1.113516364,0> Rcl } cylinder { <-0.262865556,1.113516364,-0.809016994> <-0.425325404,0.268286556,-1.309016994> Rcl } cylinder { <-1.113516364,-0.268286556,-0.809016994> <-0.425325404,0.268286556,-1.309016994> Rcl } cylinder { <0.425325404,-0.268286556,-1.309016994> <-0.425325404,0.268286556,-1.309016994> Rcl } sphere { <-0.262865556,1.113516364,-0.809016994> Rsp } sphere { <-0.425325404,0.268286556,-1.309016994> Rsp } } object { Poly12x20 (1.113516364/1.401258439,4,4) scale 1.401258439 texture { Texss } } union { object { Unit12f } object { Unit12f rotate y*72 } object { Unit12f rotate y*-72 } object { Unit12f rotate y*144 } object { Unit12f rotate y*-144 } object { Unit12f rotate x*180 rotate y*36 } object { Unit12f rotate x*180 rotate y*-36 } object { Unit12f rotate x*180 rotate y*108 } object { Unit12f rotate x*180 rotate y*-108 } object { Unit12f rotate x*180 rotate y*180 } texture { Texsp } } no_shadow } //Arcimedian 20c #declare Pl20c=union { #declare Unit20c=union { cylinder { <-0.68819096,2.327438437,-0.5> <0.262865556,2.327438437,-0.809016994> Rcl } cylinder { <-0.68819096,2.327438437,-0.5> <-1.37638192,1.801707325,-1> Rcl } cylinder { <-2.064572881,1.275976213,-0.5> <-1.37638192,1.801707325,-1> Rcl } cylinder { <-1.113516364,1.275976213,-1.809016994> <-1.37638192,1.801707325,-1> Rcl } cylinder { <-1.113516364,1.275976213,-1.809016994> <-0.162459848,1.275976213,-2.118033989> Rcl } cylinder { <-2.064572881,1.275976213,-0.5> <-2.227032729,0.425325404,-1> Rcl } cylinder { <-1.113516364,1.275976213,-1.809016994> <-1.639247477,0.425325404,-1.809016994> Rcl } cylinder { <-2.227032729,0.425325404,-1> <-1.639247477,0.425325404,-1.809016994> Rcl } cylinder { <-2.389492577,-0.425325404,-0.5> <-2.227032729,0.425325404,-1> Rcl } cylinder { <-1.213922072,-0.425325404,-2.118033989> <-1.639247477,0.425325404,-1.809016994> Rcl } sphere { <-0.68819096,2.327438437,-0.5> Rsp } sphere { <-1.37638192,1.801707325,-1> Rsp } sphere { <-2.064572881,1.275976213,-0.5> Rsp } sphere { <-1.113516364,1.275976213,-1.809016994> Rsp } sphere { <-2.227032729,0.425325404,-1> Rsp } sphere { <-1.639247477,0.425325404,-1.809016994> Rsp } } object { Poly12x20 (0.939233621,0.914958382,4) scale 2.478018659 texture { Texss } } union { object { Unit20c } object { Unit20c rotate y*72 } object { Unit20c rotate y*-72 } object { Unit20c rotate y*144 } object { Unit20c rotate y*-144 } object { Unit20c rotate x*180 rotate y*36 } object { Unit20c rotate x*180 rotate y*-36 } object { Unit20c rotate x*180 rotate y*108 } object { Unit20c rotate x*180 rotate y*-108 } object { Unit20c rotate x*180 rotate y*180 } texture { Texsp } } no_shadow } // #declare Top=object { Pl20c translate y*2*2.327438437 } #declare I=40; #while (I>0) #declare Top= union { object { Top rotate y*144 rotate z*180/pi*2*1.017221968 } object { Pl20c } translate y*2*2.327438437 } #declare I=I-1; #end object { Top rotate y*10 }