// Reursive / Crystals Structure '99.02 // By Tsutomu HIGO E-mail: nj2t-hg@asahi-net.or.jp #version 3.1 global_settings { assumed_gamma 2.2 } camera { location < 0,0,-1.5 > angle 90 look_at < 0,0.075,0 > } light_source { <50, 100, -50> color rgb <1,1,1> } #declare Dn = 6; #declare Data = array [Dn][2] { {60,50},{70,130},{60,170},{70,250},{60,310},{70,5} } #declare Unit = box { <-0.25,0.75,-0.25> <0.25,1.25,0.25> } #declare J=0; #while (J < 4) #declare Unit = #declare Sc =1; #declare Xp =0; #declare Yp =0; #declare Zp =0; union { #declare I=0; #while (I < Dn) object {Unit rotate translate } #declare Xp =Sc*(Xp+sin(Data[I][0]*pi/180)*sin(Data[I][1]*pi/180)); #declare Yp =Sc*(Yp+cos(Data[I][0]*pi/180)); #declare Zp =Sc*(Zp+sin(Data[I][0]*pi/180)*cos(Data[I][1]*pi/180)); #declare I=I+1; #end #declare Sc=1/sqrt(Xp*Xp+Yp*Yp+Zp*Zp); scale Sc rotate y*180/pi*asin(Zp/sqrt(Zp*Zp+Xp*Xp)) rotate z*180/pi*acos(Yp/sqrt(Xp*Xp+Yp*Yp+Zp*Zp)) } #declare J=J+1; #end union { #declare I=0; #while (I < 4) object { Unit translate y*-0.5 rotate z*90 translate y*0.5 rotate z*90*I } #declare I=I+1; #end texture { pigment { gradient z color_map{[0.0 rgbt<1,0,0,0.3>][1.0 rgbt<0,0,1,0.3>]} scale 1 } } finish { ambient 0.6 reflection 0.4 diffuse 0.5 phong 1 specular 2 brilliance 2.5 } no_shadow rotate z*45 rotate x*30 } background { color <0,0.1,0.3> }