#include "stdinc.inc" #include "textures.inc" #include "metals.inc" #include "skies.inc" #include "stones.inc" #include "glass.inc" #include "rad_def.inc" global_settings { charset utf8 radiosity { Rad_Settings(Radiosity_OutdoorLight,off,off) } } background { <.8,0.6353,0.4863>*.2 } #declare NbOr=(1+sqrt(5))/2; #declare Rect=box{<-0.5,0,-NbOr/2>, <0.5,0,NbOr/2>}; #declare Ecart=0.4; #declare Rayon=0.8; #declare HauteurSpirale=8; #declare HauteurMur=4; #declare TOr=texture {T_Gold_5E }; #declare TMur=texture {pigment {Red} finish { Dull }} #declare MFibo=material{M_Dark_Green_Glass} #declare NbOrTxt="1.618033988749894848204586834365638117720309179805762862135448622705260462818902449707207204189391137484754088075386891752126633862223536931793180060"; #declare FiboTxt="0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368,75025,121393,196418,317811,514229,832040,1346269,2178309"; #macro Centre(obj) #local DX=max_extent(obj).x-min_extent(obj).x; #local DY=max_extent(obj).y-min_extent(obj).y; #local DZ=max_extent(obj).z-min_extent(obj).z; translate<-min_extent(obj).x-DX/2,0,-min_extent(obj).z-DZ/2> #end #macro Contours(boite) union{ box{, } box{, } box{, } box{, } cylinder { ,,Ecart } cylinder { ,,Ecart } cylinder { ,,Ecart } cylinder { ,,Ecart } sphere { ,Ecart } sphere { ,Ecart } sphere { ,Ecart } sphere { ,Ecart } cylinder { ,,Ecart } cylinder { ,,Ecart } cylinder { ,,Ecart } cylinder { ,,Ecart } texture { TMur } } #end #macro iteration(monRect) box{,} #end #declare ObjRect=object { Contours(Rect) Centre(Rect) } #declare i=0; #while (i<8) #local Rect2=iteration(Rect); #local ObjRect2=union{ Contours(Rect2) intersection { torus { max_extent(Rect).z-min_extent(Rect).z, Rayon translate } box {,} translate HauteurSpirale*y texture { TOr } } sphere { ,Rayon texture { TOr }} sphere { ,Rayon texture { TOr }} cylinder { ,,Ecart texture { TMur }} cylinder { ,,Ecart texture { TMur }} object { ObjRect }} #local ObjRect2=object { ObjRect2 Centre(Rect2) rotate 90*y} #declare ObjRect=ObjRect2; #declare Rect=box {Rect2 Centre(Rect2) rotate 90*y}; #declare i=i+1; #end #declare ObjRect=object {ObjRect Centre(Rect) rotate 90*y} object{ObjRect} camera { location <0, 1.3*(max_extent(ObjRect).x-min_extent(ObjRect).x)/tan(radians(30)), 0> look_at <0, 0, 0> angle 30 rotate -30*x } //background { White } light_source { <100, 200, -100> color White} light_source { <-100, 200, -100> color White} text { ttf "/usr/share/fonts/ttf/decoratives/flubber.ttf" NbOrTxt Ecart*0.75 0 rotate 45*x translate <14.5-92*clock,0,0> rotate -45*y scale 5 translate <-(max_extent(ObjRect).x-min_extent(ObjRect).x)*.55,HauteurSpirale+2*Rayon,0> texture {TOr}} text { ttf "/usr/share/fonts/ttf/decoratives/flubber.ttf" FiboTxt Ecart*0.75 0 rotate 45*x translate <4-92*clock,0,0> rotate -45*y scale 5 translate <(max_extent(ObjRect).x-min_extent(ObjRect).x)*.55,HauteurSpirale+2*Rayon,0> material {MFibo} } plane { y,0 texture { T_Stone1 scale 10 } }