####################################################################################################################################### # # # C O N S T R U C T I O N D U T R I A N G L E D E S I E R P I N S K I A L ' A I D E # # D E " I T E R A T E D F U N C T I O N S E T " S : # # # # # # Author of '$xiirk/.IFS2S.11.5.$U' : # # # # Jean-Francois COLONNA (LACTAMME, 20050614094131). # # # ####################################################################################################################################### $Z set NtransformsX=`$CA $xTV/TRANSLATION_OX | $WCl` $Z set NtransformsY=`$CA $xTV/TRANSLATION_OY | $WCl` $Z set NtransformsZ=`$CA $xTV/TRANSLATION_OZ | $WCl` #20220615102814__:$Z set Ntransforms=`$xcg/MAX3.01$X x=$NtransformsX y=$NtransformsY z=$NtransformsZ entier=VRAI signe="$K_VIDE"` # $Z set Ntransforms=`$xcg/MIN3.01$X x=$NtransformsX y=$NtransformsY z=$NtransformsZ entier=VRAI signe="$K_VIDE"` $Z # Calcul du nombre de transformations definies. On notera que l'on fait cela en examinant # $Z # uniquement les trois fichiers des translations (et ce pour simplifier...). # $Z if (! -e $xTV/PROBABILITES) then $Z # Lorsque '$xTV/PROBABILITES' n'existe pas et n'a donc pas ete genere par un certain # $Z # processus, alors il est initialise ci-apres avec des "equi-probabilites". Ceci a ete # $Z # introduit le 20050614115235... # $Z set CoMpTeUr=1 $Z while ($CoMpTeUr <= $Ntransforms) $Z # Bouclage sur l'ensemble des transformations... # $Z genere `$xcg/INVZ.01$X x=$Ntransforms` $xTV/PROBABILITES $Z @ CoMpTeUr = $CoMpTeUr + 1 $Z end $Z else $Z endif $Z $DELETE $xTV/SPHERES$COORD_X $Z $DELETE $xTV/SPHERES$COORD_Y $Z $DELETE $xTV/SPHERES$COORD_Z $Z set Lpoints="$K_VIDE" $Z set Lpoints="$Lpoints"" ne=$Npoints" $Z set Lpoints="$Lpoints"" LISTE_X=$xTV/POINTS$COORD_X" $Z set Lpoints="$Lpoints"" LISTE_Y=$xTV/POINTS$COORD_Y" $Z set Lpoints="$Lpoints"" LISTE_Z=$xTV/POINTS$COORD_Z" $Z set Ltransformations="$K_VIDE" $Z set Ltransformations="$Ltransformations"" nt=$Ntransforms" $Z set Ltransformations="$Ltransformations"" ELEMENT_M11=$xTV/ELEMENT_M11" $Z set Ltransformations="$Ltransformations"" ELEMENT_M12=$xTV/ELEMENT_M12" $Z set Ltransformations="$Ltransformations"" ELEMENT_M13=$xTV/ELEMENT_M13" $Z set Ltransformations="$Ltransformations"" ELEMENT_M21=$xTV/ELEMENT_M21" $Z set Ltransformations="$Ltransformations"" ELEMENT_M22=$xTV/ELEMENT_M22" $Z set Ltransformations="$Ltransformations"" ELEMENT_M23=$xTV/ELEMENT_M23" $Z set Ltransformations="$Ltransformations"" ELEMENT_M31=$xTV/ELEMENT_M31" $Z set Ltransformations="$Ltransformations"" ELEMENT_M32=$xTV/ELEMENT_M32" $Z set Ltransformations="$Ltransformations"" ELEMENT_M33=$xTV/ELEMENT_M33" $Z set Ltransformations="$Ltransformations"" TRANSLATION_OX=$xTV/TRANSLATION_OX" $Z set Ltransformations="$Ltransformations"" TRANSLATION_OY=$xTV/TRANSLATION_OY" $Z set Ltransformations="$Ltransformations"" TRANSLATION_OZ=$xTV/TRANSLATION_OZ" $Z set Ltransformations="$Ltransformations"" PROBABILITE=$xTV/PROBABILITES" $Z set Arguments="iterations=$_____Iterations toutes=VRAI" $Z $xrv/IFS.01$X \ $Z $Lpoints \ $Z $Ltransformations \ $Z $Arguments \ $Z px=1 py=0 pz=0 \ $Z > $xTV/SPHERES$COORD_X $Z # Iteration generant les coordonnees 'X'... # $Z $xrv/IFS.01$X \ $Z $Lpoints \ $Z $Ltransformations \ $Z $Arguments \ $Z px=0 py=1 pz=0 \ $Z > $xTV/SPHERES$COORD_Y $Z # Iteration generant les coordonnees 'Y'... # $Z $xrv/IFS.01$X \ $Z $Lpoints \ $Z $Ltransformations \ $Z $Arguments \ $Z px=0 py=0 pz=1 \ $Z > $xTV/SPHERES$COORD_Z $Z # Iteration generant les coordonnees 'Z'... # $Z $DELETE $xTV/POINTS$COORD_X $Z $DELETE $xTV/POINTS$COORD_Y $Z $DELETE $xTV/POINTS$COORD_Z $Z if ("$_____ImagesR" != "$K_VIDE") then $Z # Test introduit le 20121127105537 afin de pouvoir ne generer que les listes de coordonnees # $Z # '$xTV/SPHERES'... # $Z set NspheresX=`$CA $xTV/SPHERES$COORD_X | $WCl` $Z set NspheresY=`$CA $xTV/SPHERES$COORD_Y | $WCl` $Z set NspheresZ=`$CA $xTV/SPHERES$COORD_Z | $WCl` #20220615102814____:$Z set Nspheres=`$xcg/MAX3.01$X x=$NspheresX y=$NspheresY z=$NspheresZ entier=VRAI signe="$K_VIDE"` # $Z set Nspheres=`$xcg/MIN3.01$X x=$NspheresX y=$NspheresY z=$NspheresZ entier=VRAI signe="$K_VIDE"` $Z set Nspheres_sN=`$xcg/DIVZ.01$X x=$Nspheres y=$Npoints entier=VRAI signe="$K_VIDE"` $Z $DELETE $xTV/COULEURS$ROUGE $Z $DELETE $xTV/COULEURS$VERTE $Z $DELETE $xTV/COULEURS$BLEUE $Z $DELETE $xTV/RAYONS $Z set Nspheres_sN_m1=`$xcg/SOUS.01$X a=$Nspheres_sN b=1 entier=VRAI signe="$K_VIDE"` $Z set CoMpTeUr=1 $Z set NiVeAu1=$GRIS_8 $Z set NiVeAu2=$GRIS_0 $Z set NiVeAu3=$GRIS_0 $Z while ($CoMpTeUr <= $Npoints) $Z # Bouclage sur l'ensemble des points de depart... # $Z if ($_____Palette == "$K_VIDE") then $Z # Possibilite introduite le 20130304164949... # $Z $xci/valeurs_inte$X \ $Z premiere=1 derniere=$Nspheres_sN \ $Z vD=$NiVeAu1 vA=$NiVeAu1 \ $Z cubique=FAUX \ $Z >>! $xTV/COULEURS$ROUGE $Z $xci/valeurs_inte$X \ $Z premiere=1 derniere=$Nspheres_sN \ $Z vD=$NiVeAu2 vA=$NiVeAu2 \ $Z cubique=FAUX \ $Z >>! $xTV/COULEURS$VERTE $Z $xci/valeurs_inte$X \ $Z premiere=1 derniere=$Nspheres_sN \ $Z vD=$NiVeAu3 vA=$NiVeAu3 \ $Z cubique=FAUX \ $Z >>! $xTV/COULEURS$BLEUE $Z # Definition de la couleur d'un premier point de depart et de ses transformees... # $Z set NiVeAu4=$NiVeAu3 $Z set NiVeAu3=$NiVeAu2 $Z set NiVeAu2=$NiVeAu1 $Z set NiVeAu1=$NiVeAu4 $Z # Decalage circulaire des couleurs... # $Z set CoLoRiAgE="$K_VIDE" $Z set CoLoRiAgE="$CoLoRiAgE"" LISTE_ROUGE=$xTV/COULEURS$ROUGE" $Z set CoLoRiAgE="$CoLoRiAgE"" LISTE_VERTE=$xTV/COULEURS$VERTE" $Z set CoLoRiAgE="$CoLoRiAgE"" LISTE_BLEUE=$xTV/COULEURS$BLEUE" $Z else $Z $xci/valeurs_inte$X \ $Z premiere=1 derniere=$Nspheres_sN \ $Z vD=$NOIR_PLANCHER vA=$BLANC \ $Z cubique=FAUX \ $Z >>! $xTV/NIVEAUX $Z set CoLoRiAgE="$K_VIDE" $Z set CoLoRiAgE="$CoLoRiAgE"" LISTE_NIVEAU=$xTV/NIVEAUX" $Z set CoLoRiAgE="$CoLoRiAgE"" palette=$_____Palette" $Z endif $Z echo $_____Rayon_0 \ $Z >>! $xTV/RAYONS $Z $xci/valeurs_inte$X \ $Z premiere=1 derniere=$Nspheres_sN_m1 \ $Z vD=$_____Rayon_N vA=$_____Rayon_N \ $Z cubique=FAUX \ $Z >>! $xTV/RAYONS $Z # Definition des RAYONs de marquage en mettant en valeur les deux points de depart... # $Z @ CoMpTeUr = $CoMpTeUr + 1 $Z end $Z set HomothetieX=`$xrv/extrema.01$X ne=0 fichier=$xTV/SPHERES$COORD_X | $GRE "homothetie *="` $Z set HomothetieX=`echo "$HomothetieX" | $SE -e "s/^.*= *//"` $Z set TranslationX=`$xrv/extrema.01$X ne=0 fichier=$xTV/SPHERES$COORD_X | $GRE "translation\.* *="` $Z set TranslationX=`echo "$TranslationX" | $SE -e "s/^.*= *//"` $Z set HomothetieY=`$xrv/extrema.01$X ne=0 fichier=$xTV/SPHERES$COORD_Y | $GRE "homothetie *="` $Z set HomothetieY=`echo "$HomothetieY" | $SE -e "s/^.*= *//"` $Z set TranslationY=`$xrv/extrema.01$X ne=0 fichier=$xTV/SPHERES$COORD_Y | $GRE "translation\.* *="` $Z set TranslationY=`echo "$TranslationY" | $SE -e "s/^.*= *//"` $Z set HomothetieZ=`$xrv/extrema.01$X ne=0 fichier=$xTV/SPHERES$COORD_Z | $GRE "homothetie *="` $Z set HomothetieZ=`echo "$HomothetieZ" | $SE -e "s/^.*= *//"` $Z set TranslationZ=`$xrv/extrema.01$X ne=0 fichier=$xTV/SPHERES$COORD_Z | $GRE "translation\.* *="` $Z set TranslationZ=`echo "$TranslationZ" | $SE -e "s/^.*= *//"` $Z $xrv/particule.10$X \ $Z np=1 \ $Z iterations=$Nspheres \ $Z AX=$HomothetieX BX=$TranslationX \ $Z LISTE_X=$xTV/SPHERES$COORD_X \ $Z AY=$HomothetieY BY=$TranslationY \ $Z LISTE_Y=$xTV/SPHERES$COORD_Y \ $Z AZ=$HomothetieZ BZ=$TranslationZ \ $Z LISTE_Z=$xTV/SPHERES$COORD_Z \ $Z N_AU_CARRE=$_____NAuCarre \ $Z $CoLoRiAgE \ $Z LISTE_RAYON=$xTV/RAYONS \ $Z zoom_automatique=FAUX ZOOM=0.95 \ $Z isoles=VRAI \ $Z Lz=100 \ $Z Zminimum=$_____DepthCueing Zmaximum=1.0 \ $Z ZminimumT=$_____DepthCueing ZmaximumT=1.0 \ $Z editer_hors=FAUX \ $Z chiffres=0 \ $Z R=$_____ImagesR \ $Z $formatI $Z else $Z endif