#!/bin/csh ####################################################################################################################################### # # # G E N E R A T I O N D E L A P A L E T T E ' Impossible.02 ' : # # # # # # Utilisation : # # # # $xigP/Impossible.02$Z [<FichiersXYZ> [<Message> [<TailleMessage> [<DimensionXY> [<Bibliotheque>]]]]] # # # # # # Author of '$xigP/Impossible.02$Z' : # # # # Jean-Francois COLONNA (LACTAMME, 20230511093936). # # # ####################################################################################################################################### set FichiersXYZ=$1 set Message=$2 set TailleMessage=$3 set DimensionXY=$4 set Bibliotheque=$5 setArgum Message "AJ332JA" setArgum TailleMessage 86 setArgum DimensionXY `calculINS (2*6*$TailleMessage)-2` # Le "2*6" vient du fait qu'il y a deux caracteres "AJ" (et "JA") dans le message et qu'ils # # sont inscrits dans un carre 6x6. Je ne vois pas comment automatiser cela facilement... # setArgum Bibliotheque 3 # Argument introduit le 20230524090428... # FilSTmpB FStRuCtUrE XYmaxNe $DimensionXY $DimensionXY # Et ce afin qu'existe un "vrai" point entier au milieu de [$Xmin,$Xmax] et [$Ymin,$Ymax]. # # # # On notera avec le message par defaut "AJ332JA", les couples suivants : # # # # TailleMessage : DimensionXY : # # # # 86 1030 # # 43 514 # # 22 262 # # # # Je ne vois pas comment automatiser cela facilement... # set OrIgInE_X=`$xci/coordonnees$X abscisse=VRAI ordonnee=FAUX normalisees=VRAI x=1 signe="$K_VIDE"` set OrIgInE_Y=`$xci/coordonnees$X abscisse=FAUX ordonnee=VRAI normalisees=VRAI y=1 signe="$K_VIDE"` # Cela est destine a garantir que les structures de type "AJ332JA" se raccordent a # # elles-memes correctement (sans decalage...) lors de symetries par rapport a 'OX' et 'OY'. # set NiVeAu_MeSsAGe=$BLANC $xci/message$X \ A=$NOIR \ taille=$TailleMessage \ SKH=FAUX \ message="$Message" \ niveau_message=$NiVeAu_MeSsAGe \ niveau_fond=$NOIR \ lisere=FAUX \ bibliotheque=$Bibliotheque \ x=-$OrIgInE_X \ y=-$OrIgInE_Y \ editer_XYN=VRAI editer_points_hors_image=VRAI \ Prme=VRAI \ R=$FStRuCtUrE.image \ $formatI \ > $FStRuCtUrE.all # La suppression du liseret a ete introduite le 20230516170603 afin de n'avoir que les # # points utiles (ceux qui composent le message...). # if ($NEXIST) then $xci/display$X \ A=$FStRuCtUrE.image \ $formatI & $xci/Sx$X \ A=$FStRuCtUrE.image \ $formatI | \ $xci/display$X \ xc=1 yc=0 \ $formatI & $xci/Sy$X \ A=$FStRuCtUrE.image \ $formatI | \ $xci/display$X \ xc=0 yc=1 \ $formatI & else endif #20230512115759____:$CA $FStRuCtUrE.all | \ # #20230512115759____:$GRE -v '^ *$' | \ # #20230512115759____:$AW ' { print $1 " " $2 } ' | \ # #20230512115759____:$SE -e "s/X=//" -e "s/Y=//" \ # #20230512115759____: >> $FStRuCtUrE # $CA $FStRuCtUrE.all | \ $GRE -v '^ *$' | \ $AW ' { print $1 " " $2 } ' | \ $SE -e "s/X=//" -e "s/Y=//" | \ $SOR -n --key=2 \ >> $FStRuCtUrE # Le '$SOR' introduit le 20230512115759 permet de fournir des coordonnees 'Y' croissantes... # # # # Cela ameliore un peu les choses lorsque ces coordonnees {X,Y} sont ensuite exploitees par # # 'v $xci/valeurs_TransformationPeano2D$K' via 'v $xiirv/.PEAN.31.$U' en remplacant # # dans 'v $xiirv/$Fnota Debut_listG_PEAN_N1' l'usage de '$xigP/Mandelbrot.01$Z' par # # '$xigP/Impossible.02$Z'. Mais c'est loin d'etre parfait : peut-etre est-ce du au fait # # que la fonction que l'on definit ainsi avec ces coordonnees {X,Y} est loin d'etre continue. # # # # A la date de 20230512115759, 'v $xigP/Impossible.01$Z' donne de bien meilleurs resultats. # set SeLeCtIoN="$K_VIDE" if ("$FichiersXYZ" == "$K_VIDE") then set SeLeCtIoN="$SeLeCtIoN"" $xrv/selection.11$X" set SeLeCtIoN="$SeLeCtIoN"" nombre=`calcul $COULEURS`" set PaSsEs=10 else set SeLeCtIoN="$SeLeCtIoN"" $xrv/neutre$X" set PaSsEs=0 endif set MiNiMuM=0 set MaXiMuM=1 $CA $FStRuCtUrE | \ $AW ' { print $1 } ' | \ $SeLeCtIoN \ ne=0 fichier== | \ $xrv/normalise.01$X \ ne=0 fichier== \ minimum=$MiNiMuM maximum=$MaXiMuM | \ $xrv/lissage.01$X \ ne=0 fichier== \ passes=$PaSsEs \ > $FStRuCtUrE.9$COORD_X $CA $FStRuCtUrE | \ $AW ' { print $2 } ' | \ $SeLeCtIoN \ ne=0 fichier== | \ $xrv/normalise.01$X \ ne=0 fichier== \ minimum=$MiNiMuM maximum=$MaXiMuM | \ $xrv/lissage.01$X \ ne=0 fichier== \ passes=$PaSsEs \ > $FStRuCtUrE.9$COORD_Y $CA $FStRuCtUrE | \ $AW ' { print "0" } ' | \ $SeLeCtIoN \ ne=0 fichier== | \ $xrv/normalise.01$X \ ne=0 fichier== \ minimum=$MiNiMuM maximum=$MaXiMuM \ > $FStRuCtUrE.9$COORD_Z if ("$FichiersXYZ" == "$K_VIDE") then $CA $FStRuCtUrE.9$COORD_X | \ $xrv/normalise.01$X \ ne=0 fichier== \ minimum=$NOIR maximum=$BLANC \ formater=VRAI entier=VRAI signe="$K_VIDE" \ > $FStRuCtUrE$COORD_X $CA $FStRuCtUrE.9$COORD_Y | \ $xrv/normalise.01$X \ ne=0 fichier== \ minimum=$NOIR maximum=$BLANC \ formater=VRAI entier=VRAI signe="$K_VIDE" \ > $FStRuCtUrE$COORD_Y $CA $FStRuCtUrE.9$COORD_Z | \ $xrv/normalise.01$X \ ne=0 fichier== \ minimum=$NOIR maximum=$BLANC \ formater=VRAI entier=VRAI signe="$K_VIDE" \ > $FStRuCtUrE$COORD_Z set VaLide_X=`$CA $FStRuCtUrE$COORD_X | $WCl` set VaLide_Y=`$CA $FStRuCtUrE$COORD_Y | $WCl` set VaLide_Z=`$CA $FStRuCtUrE$COORD_Z | $WCl` if (($VaLide_X == $COULEURS) && ($VaLide_Y == $COULEURS) && ($VaLide_Z == $COULEURS)) then set numeros = (`$xci/valeurs_inte$X p=$NOIR d=$BLANC vD=$NOIR_PLANCHER vA=$COULEURS cubique=FAUX entiers=VRAI signe="$K_VIDE"`) set niveaux = (`$xci/valeurs_inte$X p=$NOIR d=$BLANC vD=$NOIR vA=$BLANC cubique=FAUX entiers=VRAI signe="$K_VIDE"`) set fonction = (`repeat $COULEURS echo "N "`) set rouge = (`$CA $FStRuCtUrE$COORD_X`) set verte = (`$CA $FStRuCtUrE$COORD_Y`) set bleue = (`$CA $FStRuCtUrE$COORD_Z`) source $xigP/.INTERPOLE$Y else EROR "Il n'a pas ete possible de generer '$COULEURS' niveaux." endif else set ChIfFrEs=4 $DELETE $FichiersXYZ$COORD_X $CA $FStRuCtUrE.9$COORD_X | \ $xrv/neutre$X \ ne=0 fichier== \ ChiffresFlot=$ChIfFrEs \ > $FichiersXYZ$COORD_X $DELETE $FichiersXYZ$COORD_Y $CA $FStRuCtUrE.9$COORD_Y | \ $xrv/neutre$X \ ne=0 fichier== \ ChiffresFlot=$ChIfFrEs \ > $FichiersXYZ$COORD_Y $DELETE $FichiersXYZ$COORD_Z $CA $FStRuCtUrE.9$COORD_Z | \ $xrv/neutre$X \ ne=0 fichier== \ ChiffresFlot=$ChIfFrEs \ > $FichiersXYZ$COORD_Z endif FilSTmpE FStRuCtUrE