12 anelli orizzontali
Gli anelli sono distribuiti nel piano con un angolo di 30°
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include "colors.inc" #declare gradi=0; #while(gradi < 360) torus { 1, 0.25 pigment{ color Yellow } translate<+5,0,0> rotate<0,gradi,0> } #declare gradi=gradi+30; #end light_source{ <0,+5,-12>, color White } camera { location<0,+5,-12> look_at<0,-1,0> } |
12 anelli verticali
Gli anelli sono ruotati opportunamente per disporli in verticale.
Osserva lo sfasamento di -15° rispetto alla serie precedente…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include "colors.inc" #declare gradi=-15; #while(gradi < 360) torus { 1, 0.25 pigment{ color Cyan } rotate<90,90,0> translate<+5,0,0> rotate<0,gradi,0> } #declare gradi=gradi+30; #end light_source{ <0,+5,-12>, color White } camera { location<0,+5,-12> look_at<0,-1,0> } |
Catena
Sovrapponendo le due serie di anelli si ottiene la catena.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#include "colors.inc" #declare gradi1=0; #declare gradi2=-15; #while(gradi1 < 360) torus { 1, 0.25 pigment{ color Yellow } translate<+5,0,0> rotate<0,gradi1,0> } #declare gradi1=gradi1+30; torus { 1, 0.25 pigment{ color Cyan } rotate<90,90,0> translate<+5,0,0> rotate<0,gradi2,0> } #declare gradi2=gradi2+30; #end light_source{ <0,+5,-12>, color White } camera { location<0,+5,-12> look_at<0,-1,0> } |
Catena di 24 anelli
Il codice si può semplificare ulteriormente ruotando il singolo anello di 90° a ogni passo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include "colors.inc" #declare gradi=0; #declare angolo=0; #while(gradi < 360) torus { 1, 0.25 pigment{ color White } rotate<angolo,angolo,0> translate<+5,0,0> rotate<0,gradi,0> } #declare gradi=gradi+15; #declare angolo=angolo+90; #end light_source{ <0,+5,-12>, color White } camera { location<0,+5,-12> look_at<0,-1,0> } |