####################################################################################################################################### # # # G E N E R A T I O N I T E R A T I V E D ' U N F L O C O N D E V O N K O C H : # # # # # # Author of '$xiirc/.VONK.71.1.$U' : # # # # Jean-Francois Colonna (LACTAMME, 20151204100514). # # # ####################################################################################################################################### $Z setParam _____Recursions (1 2 3 4 5) $Z setParam _____Grossissement 1 $Z setParam _____Rayon 0.010 $Z setParam _____Connexion VRAI $Z setParam _____DistanceMini 0.005 $Z setParam _____Cubique FAUX $Z setParam _____Zoom 2.2 $Z setParam _____NAuCarre VRAI $Z setParam _____Palette $xiP/arc_ciel.C1 $Z setParam _____CNiveau0 $GRIS_8 $Z # Definition des niveaux des Courbes. # $Z setParam _____PasCNiveau 0 $Z # Definition des niveaux des Courbes. # $Z setParam _____RNiveau0 $GRIS_0 $Z # Definition des niveaux de Remplissage. # $Z setParam _____PasRNiveau 40 $Z # Definition des niveaux de Remplissage. # $Z FilSTmpB FAnGlEs $Z $xcg/scale$X multiplicateur=0 nombre=-$pi diviseur=3 >> $FAnGlEs $Z $xcg/scale$X multiplicateur=1 nombre=-$pi diviseur=3 >> $FAnGlEs $Z $xcg/scale$X multiplicateur=4 nombre=-$pi diviseur=3 >> $FAnGlEs $Z $xcg/scale$X multiplicateur=1 nombre=-$pi diviseur=3 >> $FAnGlEs $Z set HaUtEuR=`calcul sqrt(3)/2` $Z set CoOrD_XA=`calcul -1/2` $Z set CoOrD_YA=`calcul -($HaUtEuR/3)` $Z set CoOrD_XB=`calcul +1/2` $Z set CoOrD_YB=`calcul -($HaUtEuR/3)` $Z set CoOrD_XC=0 $Z set CoOrD_YC=`calcul +2*($HaUtEuR/3)` $Z # Definition d'un triangle equilateral ABC. L'origine est situee au 1/3 de sa hauteur # $Z # verticale... # $Z set FArGuMeNtS="$K_VIDE" $Z set FArGuMeNtS="$FArGuMeNtS"" iterations=4" $Z set FArGuMeNtS="$FArGuMeNtS"" complexe=FAUX" $Z set FArGuMeNtS="$FArGuMeNtS"" aleatoire=FAUX" $Z set FArGuMeNtS="$FArGuMeNtS"" Lz=1000" $Z set FArGuMeNtS="$FArGuMeNtS"" grossissement=$_____Grossissement" $Z set FArGuMeNtS="$FArGuMeNtS"" RVB=VRAI" $Z set FArGuMeNtS="$FArGuMeNtS"" ANGLE_DE_ROTATION=$FAnGlEs" $Z set FArGuMeNtS="$FArGuMeNtS"" rapport=3" $Z set FArGuMeNtS="$FArGuMeNtS"" connexions=$_____Connexion" $Z set FArGuMeNtS="$FArGuMeNtS"" ajuster_points=VRAI" $Z set FArGuMeNtS="$FArGuMeNtS"" equidistance=VRAI" $Z set FArGuMeNtS="$FArGuMeNtS"" compatibilite_20051230=FAUX" $Z set FArGuMeNtS="$FArGuMeNtS"" distance_minimale=$_____DistanceMini" $Z set FArGuMeNtS="$FArGuMeNtS"" cubique=$_____Cubique" $Z set FArGuMeNtS="$FArGuMeNtS"" N_AU_CARRE=$_____NAuCarre" $Z set FArGuMeNtS="$FArGuMeNtS"" chiffres=0" $Z set FArGuMeNtS="$FArGuMeNtS"" ROTATION_OY=0.01" $Z set FArGuMeNtS="$FArGuMeNtS"" projection_parallele=VRAI" $Z # Ceci a ete introduit le 20151205080503 afin que deux points d'un meme segment ne soient # $Z # pas a la meme profondeur et qu'ainsi il n'y ait pas de defauts lies a un ordre de trace # $Z # qui ne serait pas l'ordre "naturel" (c'est-a-dire d'une extremite a l'autre...). # $Z FilSTmpB FImAgEs $Z alias genere 'set ReC=\!:1 ; set CoOrD=(\!:2) ; set ZoO=\!:3 ; set RaY=\!:4 ; set ImG=\!:5 ; \\ $Z set CoOrD=($CoOrD) ; \\ $Z $xrc/Cfract_2D.12$X \\ $Z recursion=$ReC \\ $Z xG=$CoOrD[1] yG=$CoOrD[2] xD=$CoOrD[3] yD=$CoOrD[4] \\ $Z ZOOM=$ZoO \\ $Z composante_ROUGE=$CNiveau composante_VERTE=$CNiveau composante_BLEUE=$CNiveau \\ $Z rayon_de_visualisation=$RaY \\ $Z $FArGuMeNtS \\ $Z R=$ImG.$ReC $formatI ; \\ $Z unset ReC CxG CyG CxD CyD ZoO RaY ImG' $Z set InTeRpOlAtIoN="p=1 d=$#_____Recursions rD=1 rA=1 lineaire=VRAI" $Z set LZoOmC=`$xci/valeurs_poly$X $InTeRpOlAtIoN xD=0 xA=0.5 n00=0.05 n01=1 n02=0.9` $Z # Cette interpolation du second degre est destinee a faire que les differentes iterations # $Z # du flocon soient bien imbriquees les unes dans les autres et sans se toucher... # $Z set CNiveau=$_____CNiveau0 $Z set RNiveau=$_____RNiveau0 $Z set LReCuRsIoNs=($_____Recursions) $Z foreach ReCuR ($LReCuRsIoNs) $Z set ZoOmC=`calcul $LZoOmC[$ReCuR]*$_____Zoom` $Z set RaYC=`calcul $_____Rayon/$ZoOmC` $Z genere $ReCuR "$CoOrD_XA $CoOrD_YA $CoOrD_XB $CoOrD_YB" $ZoOmC $RaYC $FImAgEs.AB $Z genere $ReCuR "$CoOrD_XB $CoOrD_YB $CoOrD_XC $CoOrD_YC" $ZoOmC $RaYC $FImAgEs.BC $Z genere $ReCuR "$CoOrD_XC $CoOrD_YC $CoOrD_XA $CoOrD_YA" $ZoOmC $RaYC $FImAgEs.CA $Z execRVB $xci/maximum_03$X A1=$FImAgEs.AB.$ReCuR%s \ $Z A2=$FImAgEs.BC.$ReCuR%s \ $Z A3=$FImAgEs.CA.$ReCuR%s \ $Z R=$FImAgEs.ABC.contour.$ReCuR%s \ $Z $formatI $Z set CArGuMeNtS="$K_VIDE" $Z set CArGuMeNtS="$CArGuMeNtS"" x=0.5 y=0.5" $Z set CArGuMeNtS="$CArGuMeNtS"" seuil=$NOIR_PLANCHER" $Z set NiveauR=`$xciP/G_NIVEAU$X p=$_____Palette niveau=$RNiveau Prme=VRAI` $Z set NiveauR=$NiveauR[1] $Z $xci/contours.12$X A=$FImAgEs.ABC.contour.$ReCuR$ROUGE \ $Z $CArGuMeNtS \ $Z niveau=$NiveauR \ $Z R=$FImAgEs.ABC.remplissage.$ReCuR$ROUGE \ $Z $formatI $Z set NiveauV=`$xciP/G_NIVEAU$X p=$_____Palette niveau=$RNiveau Prme=VRAI` $Z set NiveauV=$NiveauV[2] $Z $xci/contours.12$X A=$FImAgEs.ABC.contour.$ReCuR$ROUGE \ $Z $CArGuMeNtS \ $Z niveau=$NiveauV \ $Z R=$FImAgEs.ABC.remplissage.$ReCuR$VERTE \ $Z $formatI $Z set NiveauB=`$xciP/G_NIVEAU$X p=$_____Palette niveau=$RNiveau Prme=VRAI` $Z set NiveauB=$NiveauB[3] $Z $xci/contours.12$X A=$FImAgEs.ABC.contour.$ReCuR$ROUGE \ $Z $CArGuMeNtS \ $Z niveau=$NiveauB \ $Z R=$FImAgEs.ABC.remplissage.$ReCuR$BLEUE \ $Z $formatI $Z execRVB "$xci/dilate.01$X A=$FImAgEs.ABC.remplissage.$ReCuR%s \ $Z dilater=VRAI \ $Z points=25 \ $Z $formatI | \ $Z $xci/cache$X M=$FImAgEs.ABC.contour.$ReCuR%s \ $Z anti_aliaser=VRAI \ $Z R=$FImAgEs.ABC.$ReCuR%s \ $Z $formatI" $Z set CNiveau=`calcul $CNiveau-$_____PasCNiveau` $Z set RNiveau=`calcul $RNiveau+$_____PasRNiveau` $Z end $Z execRVB $xci/init$X niveau=$NOIR \ $Z R=$_____ImageR%s \ $Z $formatI $Z set ILReCuRsIoNs=`echo $LReCuRsIoNs | $R "$K_BLANC" "$K_NL" | $AC` $Z foreach ReCuR ($ILReCuRsIoNs) $Z $xci/cache.41$Z $_____ImageR \ $Z $FImAgEs.ABC.$ReCuR \ $Z $_____ImageR $Z end $Z FilSTmpE FImAgEs $Z FilSTmpE FAnGlEs