Courbe du C (Courbe de Lévy )
Ces courbes ont été aussi construites avec Maple :
Aller voir
Tracés de la courbe du C et deux autres courbes
Courbe du C (7) |
Courbe du C (9) |
Courbe du C (137) |
Courbe Triangle (12) |
Courbe Rectangle (9) |
// Programme développé pour la courbe du C
// donne aussi d'autres fractales
#include "colors.inc"
#include "metals.inc"
//-------------- n ITERATIONS---------------
camera { location <0.5,0.5,-1.6> look_at<0.5,0.5,0>}
light_source { <-3,3,-300> color White }
light_source { <2,3,-100> color Yellow}
background { rgb<1,0.95,0.85>*1 } //<0.,0.5,0.95>*1.0
#macro fractale(r1,r2,teta1,teta2, n)
#local s1x= r1*cos(teta1) ;
#local s1y= r1*sin(teta1) ;
#local s2x= r2*cos(teta2) ;
#local s2y= r2*sin(teta2) ;
#local tab = array [pow(2,n)+1] ;
#declare tab[0]=<0,0,0>;
#declare tab[1]=<1,0,0>;
#declare tab[2]=<1,0,0>;
//---------------- macros -------------------
#macro sim(a,b,e,f,g) // similitude appliquée à
#end
//-------------------------------------------
#declare be=1;
#while(be
#while (bi
#declare temp=tab[bi]-centre;
// similitude s2 puis translation trans2 à la branche d'ordre be
#declare tab[pow(2,be)+bi]= centre +(sim(s2x,s2y,temp.x,temp.y,temp.z));
#declare bi=bi+1;
#end // fin boucle (2)
#declare bi=0;
#while (bi
#declare temp=tab[bi];
#declare tab[bi]=sim(s1x,s1y,temp.x,temp.y,temp.z);
#declare bi=bi+1;
#end // fin boucle (3)
#declare be=be+1;
#end // fin boucle (1)
//-------------------------------------------
#declare r=0.3/pow(1.35,n) ;
#declare cp=0;
union { //union (1)
union {
#while(cp
sphere {tab[cp] ,r}
cylinder { tab[cp],tab[cp+1] ,r}
#end
#declare cp=cp+1;
#end
sphere {tab[pow(2,n)-1] ,r}
texture {T_Copper_3B}
}
sphere {0 ,r*1.1 pigment {Red} }
sphere {<1,0,0> ,r*1.1 pigment {Blue} }
} //fin union (1)
#end //end macro
//--------------QUELQUES APPLICATIONS---------------
// en prenant teta1 = pi*a, teta2 = -pi*a avec a<1, on obtient diverses fractales
// pour a voisin de 0.3 , on obtient un E ... à peu près
/* */ // ----------- courbe du C ---------------
fractale(1/sqrt(2),1/sqrt(2),pi/4,-pi/4,11) // n impair est plus esthétique
/* // courbe du E
object {fractale(1/sqrt(2),1/sqrt(2),pi*0.32,-pi*0.32,16)
scale 0.7
translate <0.1,0.2,0> }
*/
/* // courbe formée de carrés parcourus plusieurs fois
#declare p=12 ;
object {fractale(1,1,pi/2,-pi/2,p)s
scale 1.5/p
translate <0.3,0.3,0> }
*/
/* // courbe inscrite dans un rectangle
#declare p=9 ;
object {fractale(0.709,0.709,pi/2,-pi/2,p)
scale 10/(p+10)
translate <0.3,0.3,0> }
*/
/* // à peu près la même que la précédente
#declare p=10 ;
object { fractale(1/sqrt(2),1/sqrt(2),pi/2,-pi/2,p)
scale 10/(p+10)
translate <0.3,0.3,0> }
*/
/*
#declare p=10 ;
object { fractale(1/sqrt(2),1/sqrt(2),3*pi/4,pi/4,p)
scale 10/(p+10)
translate <0.3,0.3,0> }
*/
/* // allure d'un triangle
#declare p=12 ;
#declare a=1.5;
object { fractale(sin(pi*a/2),cos(pi*a/2),pi*a/2,-pi*(1-a)/2,p)
scale 8/(p+10)
translate <0.3,0.5,0> }
*/