// Persistence of Vision Ray Tracer Scene Description File // File: toros034.pov // Vers: 3.6.1 // Desc: 3 RGB linked rings // Date: January 2006 // Auth: B Gimeno // e-mail: aplenosol@ya.com #include "colors.inc" #include "math.inc" global_settings { assumed_gamma 1.0 } camera {location <15,60,-80> look_at <0,0,0> direction z*1} light_source {<0,100,0> colour White} //----------------------the macro--------------------------------// #macro toro_rings_034 (major_r,minor_r,n_c_mjr_radius,n_c_mnr_radius,b_thickness,color_toros,rotac) #if (odd(n_c_mnr_radius)=true) #local n_c_mnr_radius = n_c_mnr_radius+1; #warning "Number of hexagons on minor radius readjusted to even" #end union { torus {major_r,minor_r*.9 pigment {White}} #local nmajor_r = n_c_mjr_radius ; #while (nmajor_r>0) #local nminor_r = n_c_mnr_radius ; #while (nminor_r>0) #macro px(X,Y) // px(0.5,0.5) #local Vertex = <(sind((360/n_c_mjr_radius)*(nmajor_r+X))*major_r)+((cosd((360/n_c_mnr_radius)*(nminor_r+Y))*minor_r)*(sind((360/n_c_mjr_radius)*(nmajor_r+X)))), (sind((360/n_c_mnr_radius)*(nminor_r+Y))*minor_r), (cosd((360/n_c_mjr_radius)*(nmajor_r+X))*major_r)+((cosd((360/n_c_mnr_radius)*(nminor_r+Y))*minor_r)*(cosd((360/n_c_mjr_radius)*(nmajor_r+X))))>; Vertex #end // end macro px(X,Z) union { #if (odd(nminor_r)=true) cylinder {px(0,0), px(.5,.5),b_thickness} cylinder {px(0,0), px(-.5,.5),b_thickness} cylinder {px(0,0), px(0,-.5),b_thickness} #else cylinder {px(-.5,0), px(0,.5),b_thickness} cylinder {px(0,.5), px(.5,0),b_thickness} cylinder {px(.5,0), px(.5,-.5),b_thickness} #end } #local nminor_r = nminor_r - 1 ; #end #local nmajor_r = nmajor_r - 1 ; #end // --- comment this to center the torus -------- rotate z*45 translate z*(major_r-minor_r-(minor_r)) rotate y*rotac rotate x*-45 // --------------------------------------------- pigment {color_toros} finish {reflection .4 phong .6} } #end //---------------------the objects-------------------------------// object { toro_rings_034 (25,5,45,12,.35,Red,0) } object { toro_rings_034 (25,5,50,12,.35,Green,120) } object { toro_rings_034 (25,5,60,12,.35,Blue,240) }