####################################################################################################################################### # # # G E N E R A T I O N D ' U N E S U R F A C E T R I P L E M E N T F R A C T A L E # # P A R L A M E T H O D E D E S P R O J E C T O R S : # # # # # # Author of '$xiirs/.PROJ.41.1.$U' : # # # # Jean-Francois Colonna (LACTAMME, 20041121105613). # # # ####################################################################################################################################### $Z setParam _____MailleX 0.50 $Z setParam _____MailleY 0.50 $Z setParam _____Iterations `GetParam $xci/fract_2D.01 niveau` $Z # Parametre introduit le 20041121134151... # $Z setParam _____Zoom 1.0 $Z setParam _____RotationX 0 $Z setParam _____RotationY 0 $Z setParam _____RotationZ 0 $Z setParam _____TranslationX 0 $Z # Parametre introduit le 20060206181808... # $Z setParam _____TranslationY 0 $Z # Parametre introduit le 20060206181808... # $Z setParam _____TranslationZ 0 $Z # Parametre introduit le 20060206181808... # $Z setParam _____Arguments "$K_VIDE" $Z # Parametre introduit le 20060130141149 pour permettre, par exemple, de generer les normales. # #20150610102020____:$Z Pal # $Z FilSTmpB FFrAcTaL $Z echo "$xci/fract_2D.01$X \ $Z standard=FAUX \ $Z OX=0 EX=1.0 mX=$_____MailleX \ $Z OY=0 EY=1.0 mY=$_____MailleY \ $Z graine=1111 \ $Z niveau=$_____Iterations \ $Z $formatI | \ $Z $xci/normalise.01$X \ $Z $formatI | \ $Z $xci/scale$X \ $Z standard=FAUX \ $Z a=2 \ $Z b=-1 \ $Z R=$xTV/Fx \ $Z $formatI" \ $Z >> $FFrAcTaL $Z echo "$xci/fract_2D.01$X \ $Z standard=FAUX \ $Z OX=0 EX=1.0 mX=$_____MailleX \ $Z OY=0 EY=1.0 mY=$_____MailleY \ $Z graine=3333 \ $Z niveau=$_____Iterations \ $Z $formatI | \ $Z $xci/normalise.01$X \ $Z $formatI | \ $Z $xci/scale$X \ $Z standard=FAUX \ $Z a=2 \ $Z b=-1 \ $Z R=$xTV/Fy \ $Z $formatI" \ $Z >> $FFrAcTaL $Z echo "$xci/fract_2D.01$X \ $Z standard=FAUX \ $Z OX=0 EX=1.0 mX=$_____MailleX \ $Z OY=0 EY=1.0 mY=$_____MailleY \ $Z graine=5555 \ $Z niveau=$_____Iterations \ $Z $formatI | \ $Z $xci/normalise.01$X \ $Z $formatI | \ $Z $xci/scale$X \ $Z standard=FAUX \ $Z a=2 \ $Z b=-1 \ $Z R=$xTV/Fz \ $Z $formatI" \ $Z >> $FFrAcTaL $Z $xcg/ExecParallele.01$Z $FFrAcTaL \ $Z >& $nul $Z FilSTmpE FFrAcTaL $Z if ($?_____imagesRFx == $EXIST) then $Z $xci/acces$X \ $Z A=$xTV/Fx \ $Z standard=FAUX \ $Z zero=FAUX \ $Z R=$_____imagesRFx \ $Z $formatI $Z else $Z endif $Z if ($?_____imagesRFy == $EXIST) then $Z $xci/acces$X \ $Z A=$xTV/Fy \ $Z standard=FAUX \ $Z zero=FAUX \ $Z R=$_____imagesRFy \ $Z $formatI $Z else $Z endif $Z if ($?_____imagesRFz == $EXIST) then $Z $xci/acces$X \ $Z A=$xTV/Fz \ $Z standard=FAUX \ $Z zero=FAUX \ $Z R=$_____imagesRFz \ $Z $formatI $Z else $Z endif $Z set Parametres="$K_VIDE" $Z set Parametres="$Parametres"" np=1" $Z set Parametres="$Parametres"" brume=FAUX" $Z set Parametres="$Parametres"" pu=0.020 pv=0.020" $Z set Parametres="$Parametres"" eu=40 ev=40" $Z set Parametres="$Parametres"" dpu=40 dpv=40" $Z set Parametres="$Parametres"" dxFxuv=0 dxFzu=1" $Z set Parametres="$Parametres"" dyFyuv=0 dyFzv=1" $Z set Parametres="$Parametres"" ddu=0.0004 ddv=0.0004" $Z set Parametres="$Parametres"" ZOOM=$_____Zoom" $Z set Parametres="$Parametres"" ROTATION_OX=$_____RotationX" $Z set Parametres="$Parametres"" ROTATION_OY=$_____RotationY" $Z set Parametres="$Parametres"" ROTATION_OZ=$_____RotationZ" $Z set Parametres="$Parametres"" TRANSLATION_OX=$_____TranslationX" $Z set Parametres="$Parametres"" TRANSLATION_OY=$_____TranslationY" $Z set Parametres="$Parametres"" TRANSLATION_OZ=$_____TranslationZ" $Z set Parametres="$Parametres"" Lz=100" $Z set Parametres="$Parametres"" rayon_de_visualisation=0.012" $Z set Parametres="$Parametres"" N_AU_CARRE=VRAI" $Z set Parametres="$Parametres"" edc=VRAI" $Z $xrs/project2D.11$X \ $Z aFx=1.0 Fx=$xTV/Fx \ $Z aFy=1.0 Fy=$xTV/Fy \ $Z aFz=1.0 Fz=$xTV/Fz \ $Z mu=0 Mu=1.0 \ $Z mv=0 Mv=1.0 \ $Z Fx_periodiser_u=VRAI Fy_periodiser_u=VRAI Fz_periodiser_u=VRAI \ $Z Fx_symetriser_u=FAUX Fy_symetriser_u=FAUX Fz_symetriser_u=FAUX \ $Z Fx_prolonger_u=FAUX Fy_prolonger_u=FAUX Fz_prolonger_u=FAUX \ $Z Fx_periodiser_v=VRAI Fy_periodiser_v=VRAI Fz_periodiser_v=VRAI \ $Z Fx_symetriser_v=FAUX Fy_symetriser_v=FAUX Fz_symetriser_v=FAUX \ $Z Fx_prolonger_v=FAUX Fy_prolonger_v=FAUX Fz_prolonger_v=FAUX \ $Z $Parametres \ $Z chiffres=0 \ $Z R=$_____imagesR \ $Z $_____Arguments \ $Z $formatI $Z # Les champs {Fx,Fy} n'etant pas periodiques (contrairement a {Fz}) ne doivent pas etre # $Z # "periodises" mais "prolonges". Dans le cas contraire, cela donne des artefacts (des points # $Z # "incoherents") lies a des problemes d'interpolations aux bords des champs, lorsqu'il faut # $Z # utiliser la periodicite supposee mais inexistante... # $Z # # $Z # On notera le 20041122212744 que les surfaces ainsi generees peuvent avoir des plis ; c'est # $Z # le cas de 'v $xiirs/PROJ.42.2'. L'explication a ete trouvee avec les parametres suivants : # $Z # # $Z # pu=0.050 pv=0.050 # $Z # eu=1 ev=1 # $Z # dpu=1 dpv=1 # $Z # mu=0.9 Mu=1.1 # $Z # mv=0.7 Mv=0.72 # $Z # # $Z # et dans 'v $xrs/surfaces.12$I GENERATION_D_UNE_IMAGE_DE_LA_SURFACE_AVEC_DIFFERENCES____' # $Z # en editant {u,v} et {cx,cy,cz}. Le resultat fut le suivant : # $Z # # $Z # u=+0.900000 v=+0.700000 Fx=+0.408148 Fy=-0.218798 Fz=-0.097719 # $Z # u=+0.950000 v=+0.700000 Fx=+0.597691 Fy=-0.246351 Fz=+0.037005 # $Z # u=+1.000000 v=+0.700000 Fx=+0.677763 Fy=-0.259725 Fz=+0.097890 # $Z # # $Z # pour la gauche du champ (u={+0.90,+0.95,1.00}), alors qu'a droite (u={+1.05,+1.10}) par # $Z # periodisation, on trouve : # $Z # # $Z # u=+1.050000 v=+0.700000 Fx=+0.684564 Fy=-0.200189 Fz=+0.073212 # $Z # u=+1.100000 v=+0.700000 Fx=+0.695948 Fy=-0.055914 Fz=+0.017930 # $Z # # $Z # On voit que 'Fy' decroit {-0.218798,-0.246351,-0.259725} puis croit {-0.200189,-0.055914}. # $Z # C'est ce changement de sens de variation qui est le responsable de ce type de plis. On # $Z # pourra regarder l'image 'v $xiirs/PROJ.42.2$COORD_Y p=$xiP/cercle.35' a l'ordonnnee +0.7 # $Z # et on verra qu'effectivement a droite le niveau decroit alors qu'a gauche (c'est-a-dire # $Z # la "suite" de la droite par periodisation) il remonte... # $Z # # $Z # On notera bien que l'exemple precedent est "a cheval" et fait reference a la periodicite # $Z # du champ ; mais le phenomene de "plis" n'est pas associe a la periodicite et peut donc se # $Z # rencontrer n'importe ou dans un champ... # $Z $DELETE $xTV/Fx $Z $DELETE $xTV/Fy $Z $DELETE $xTV/Fz