#######################################################################################################################################
#                                                                                                                                     #
#         V I S U A L I S A T I O N   D ' U N   Z O O M   S U R   L ' E N S E M B L E   D E   M A N D E L B R O T                     #
#         D A N S   L E S   " P S E U D O - Q U A T E R N I O N S "  :                                                                #
#                                                                                                                                     #
#                                                                                                                                     #
#         Author of '$xiirc/.MANE.B1.1.$U' :                                                                                          #
#                                                                                                                                     #
#                     Jean-Francois Colonna (LACTAMME, 20110117130008).                                                               #
#                                                                                                                                     #
#######################################################################################################################################

$Z        setParam            _____Xarrivee                 -0.15293

$Z        setParam            _____Yarrivee                 +1.03980

$Z        setParam            _____ListeNumeros             (0000 0015 0030 0045 0060 0075 0090 0105 0120)
$Z                                      # Parametre introduit le 20110119082037...                                                    #

$Z        SETParam            _____MinProportion            0.15
$Z                                      # Parametre introduit le 20110118095743...                                                    #

$Z        SET                 cPremiere=1
$Z        SET                 cDerniere=128

$Z        @                   Nimages = $cDerniere - $cPremiere
$Z        @                   Nimages = $Nimages + 1

$Z        set                 ItErAtIoN_0=14
$Z        set                 ItErAtIoN_N=100

$Z        FilSTmpB            FLiStE_FeNeTrEs
$Z        FilSTmpB            ZoOm_MaNdElBrOt

$Z        SformatI
#20110117150934____:$Z        Puh                                                                                                     #
#20110117164543____:$Z        Puq                                                                                                     #
$Z        Puh
$Z                                      # Afin de minimiser le temps de calcul...                                                     #

$Z        $xrc/mandel.01$X                                                                                                              \
$Z                            xbga=$_____Xarrivee ybga=$_____Yarrivee                                                                   \
$Z                            xhda=$_____Xarrivee yhda=$_____Yarrivee                                                                   \
$Z                            N=$Nimages                                                                                                \
$Z                            arguments=FAUX                                                                                            \
$Z                            editer_fenetre_courante=VRAI                                                                              \
$Z                            xbg_ybg_xhd_yhd=VRAI                                                                                      \
$Z                            R=$ZoOm_MaNdElBrOt.                                                                                       \
$Z                                                                                                                      $formatI        \
$Z                                                                                                  >>& $FLiStE_FeNeTrEs

$Z        RformatI

$Z        FilSTmpE            ZoOm_MaNdElBrOt

$Z        set                 LiStE_NuMeRoS=($_____ListeNumeros)

$Z        set                 NItErAtIoNs=$LiStE_NuMeRoS[$#LiStE_NuMeRoS]
$Z        set                 NItErAtIoNs=`echo "$NItErAtIoNs" | $SE -e 's/^0*\(..*\)$/\1/'`

$Z        foreach             NuMeRo_CoUrAnT      ($LiStE_NuMeRoS)
$Z                            set                 NuMeRo_FeNeTrE=`echo "$NuMeRo_CoUrAnT" | $SE -e 's/^0*\(..*\)$/\1/'`
$Z                            set                 FeNeTrE=`$CA $FLiStE_FeNeTrEs | $GRE " $NuMeRo_FeNeTrE  *: "`
$Z                            set                 FeNeTrE=`echo "$FeNeTrE" | $SE -e "s/^.*AvantHomothetie='//" -e "s/'"'.*$//'`
$Z                                      # Definition de la fenetre de calcul associe au numero courant...                             #

$Z                            SETv                ItErAtIoNs=$UNDEF
$Z                            set  ItErAtIoNs=`calculINS ((($ItErAtIoN_N-$ItErAtIoN_0)/$NItErAtIoNs)*$NuMeRo_FeNeTrE)+$ItErAtIoN_0`
$Z                                      # Definition du nombre d'iterations a effectuer.                                              #

$Z                            SformatI
#20110117150934____:$Z                            Puh                                                                                 #
#20110117164543____:$Z                            Puq                                                                                 #
$Z                            Puh
$Z                                      # Afin de minimiser les temps de calcul dans les phases de recherche de parametres            #
$Z                                      # ci-apres ('$ItErAtIoNs' et '$J_DePaRt')...                                                  #

$Z                            SET                 MiNPrOpOrTiOn=$_____MinProportion
$Z                            set                 PaS_ItErAtIoNs=2
$Z                                      # Si la proportion de points pour J=0 est inferieure ou egale a ce minimum, le nombre         #
$Z                                      # d'iteration est diminue...                                                                  #
$Z                            SET                 NTeNtAtIvEs=0
$Z                            SETv                NMaXTeNtAtIvEs=$UNDEF
$Z                            set                 NMaXTeNtAtIvEs=`calculINS $ItErAtIoNs/$PaS_ItErAtIoNs`
$Z                                      # En fait, '$NMaXTeNtAtIvEs' ne sert pas a grand chose puisque '$ItErAtIoNs' decroit          #
$Z                                      # systematiquement et que le 'while(...)' ci-apres teste le signe de '$ItErAtIoNs', mais      #
$Z                                      # on ne sait jamais...                                                                        #
$Z                            set                 ReChErChEr=$EXIST

$Z                            while               (($ReChErChEr == $EXIST) && ($ItErAtIoNs > 0))
$Z                                      # Recherche du nombre d'iterations '$ItErAtIoNs' afin de garantir une certaine proportion     #
$Z                                      # de points appartenant a l'ensemble et ce pour J=0 (et aussi K=0)...                         #
$Z                                                @                   NTeNtAtIvEs = $NTeNtAtIvEs + 1

$Z                                                FilSTmpB            ImAgE
#20110118075620____:$Z                                                SETv                ImAgE=$UNDEF                                #
$Z                                                SETv                ImAgE=$NOIR
$Z                                      # Le 'SETv' a ete introduit le 20110118074225 pour le bon fonctionnement de                   #
$Z                                      # 'v $Falias_listG SETv'. La valeur de '$ImAgE' (via le 'SETv') doit etre compatible avec     #
$Z                                      # l'usage qui en sera fait ci-apres avec '$xci/comptage$X' lors du 'listG' (qui fait un       #
$Z                                      # 'source' de tous les {'set','SET','SETv','if(...)',...}).                                   #

$Z                                                $xrc/mandel.41$X                                                                      \
$Z                                                                    images=1                                                          \
$Z                                                                    iterations=$ItErAtIoNs                                            \
$Z                                                                    COMPOSANTE_J=0                                                    \
$Z                                                                    K=0                                                               \
$Z                                                                    exposant=1                                                        \
$Z                                                                    fenetres_depart_arrivee_identiques=VRAI                           \
$Z                                                                    $FeNeTrE                                                          \
$Z                                                                    produit_non_theorique=VRAI                                        \
$Z                                                                    eRho=2                                                            \
$Z                                                                    pTheta=2  pPhi=2    pAlpha=2                                      \
$Z                                                                    tTheta=0  tPhi=0    tAlpha=0                                      \
$Z                                                                    visualiser_appartenance=VRAI                                      \
$Z                                                                    R=$ImAgE                                                          \
$Z                                                                    chiffres=0                                                        \
$Z                                                                                                  $formatI

$Z                                 SET       PrOpOrTiOn=`$xci/comptage$X A=$ImAgE origine=$NOIR_PLANCHER proportion=VRAI Prme=VRAI`

$Z                                                if        ($NTeNtAtIvEs < $NMaXTeNtAtIvEs) then
$Z                                                          if   (`$xcg/IFLE.01$X n1=$PrOpOrTiOn n2=$MiNPrOpOrTiOn` == $EXIST) then
$Z                                                               @                   ItErAtIoNs = $ItErAtIoNs - $PaS_ItErAtIoNs
$Z                                                          else
$Z                                                               set                 ReChErChEr=$NEXIST
$Z                                      # Le nombre d'iterations est suffisant, on arrete...                                          #
$Z                                                          endif
$Z                                                else
$Z                                                          set                 ReChErChEr=$NEXIST
$Z                                      # On a fait trop de tentatives, on arrete...                                                  #
$Z                                                endif

$Z                                                FilSTmpE            ImAgE
$Z                            end

$Z                            if                  ($ItErAtIoNs <= 0) then
$Z                                                set                 ItErAtIoNs=1
$Z                            else
$Z                            endif

$Z                            set                 J_DePaRt=2
$Z                            set                 PaS_J=`calculNS $J_DePaRt/2`

$Z                            SET                 NTeNtAtIvEs=0
$Z                            set                 NMaXTeNtAtIvEs=30
$Z                                      # Etant donne que l'on reduit le pas de 'J' par division par 2, il apparait que 2^10=1024     #
$Z                                      # est trop faible et qu'il faut au moins 20...                                                #
$Z                            set                 ReChErChEr=$EXIST

$Z                            while               ($ReChErChEr == $EXIST)
$Z                                      # Recherche du 'J' de depart '$J_DePaRt' afin de garantir qu'il y ait pour ce 'J' tres peu    #
$Z                                      # de points appartenant a l'ensemble pour le nombre d'iterations '$ItErAtIoNs' determine      #
$Z                                      # dans le 'while(...)' precedent...                                                           #
$Z                                                @                   NTeNtAtIvEs = $NTeNtAtIvEs + 1

$Z                                                FilSTmpB            ImAgE

$Z                                                $xrc/mandel.41$X                                                                      \
$Z                                                                    images=1                                                          \
$Z                                                                    iterations=$ItErAtIoNs                                            \
$Z                                                                    COMPOSANTE_J=$J_DePaRt                                            \
$Z                                                                    K=0                                                               \
$Z                                                                    exposant=1                                                        \
$Z                                                                    fenetres_depart_arrivee_identiques=VRAI                           \
$Z                                                                    $FeNeTrE                                                          \
$Z                                                                    produit_non_theorique=VRAI                                        \
$Z                                                                    eRho=2                                                            \
$Z                                                                    pTheta=2  pPhi=2    pAlpha=2                                      \
$Z                                                                    tTheta=0  tPhi=0    tAlpha=0                                      \
$Z                                                                    visualiser_appartenance=VRAI                                      \
$Z                                                                    R=$ImAgE                                                          \
$Z                                                                    chiffres=0                                                        \
$Z                                                                                                  $formatI

$Z                                                SET                 NoMbRe=`$xci/comptage$X A=$ImAgE origine=$NOIR_PLANCHER Prme=VRAI`

#20110117155124____:$Z                                                if                  ($NoMbRe == 0) then                         #
$Z                                      # Il faut reduire le 'J' de depart...                                                         #
#20110117155124____:$Z                                                else                                                            #
$Z                                      # On a trouve le 'J' de depart...                                                             #
#20110117155124____:$Z                                                endif                                                           #

$Z                                                if                  ($NTeNtAtIvEs < $NMaXTeNtAtIvEs) then
$Z                                                                    if                  ($NoMbRe == 0) then
$Z                                                                                        set      J_DePaRt=`calculNS $J_DePaRt-$PaS_J`
$Z                                      # Il faut reduire le 'J' de depart...                                                         #
$Z                                                                    else
$Z                                                                                        set      J_DePaRt=`calculNS $J_DePaRt+$PaS_J`
$Z                                      # On a trouve le 'J' de depart...                                                             #
$Z                                                                    endif
$Z
$Z                                                                    set                 PaS_J=`calculNS $PaS_J/2`
$Z                                                else
$Z                                                                    set                 ReChErChEr=$NEXIST
$Z                                      # On a fait trop de tentatives, on arrete...                                                  #
$Z                                                endif

$Z                                                FilSTmpE            ImAgE
$Z                            end

$Z                            RformatI

$Z                            FilSTmpB            CoMpOsAnTe_J

$Z                            $xci/valeurs_inte$X p=$cPremiere d=$cDerniere                                                             \
$Z                                                vD=$J_DePaRt vA=0                                                                     \
$Z                                                cubique=FAUX                                                                          \
$Z                                                                              >> $CoMpOsAnTe_J
$Z                            FilSTmpB            _____ImageT1

$Z                            $xrc/mandel.41$X                                                                                          \
$Z                                                images=$Nimages                                                                       \
$Z                                                iterations=$ItErAtIoNs                                                                \
$Z                                                COMPOSANTE_J=$CoMpOsAnTe_J                                                            \
$Z                                                K=0                                                                                   \
$Z                                                exposant=1                                                                            \
$Z                                                fenetres_depart_arrivee_identiques=VRAI                                               \
$Z                                                $FeNeTrE                                                                              \
$Z                                                produit_non_theorique=VRAI                                                            \
$Z                                                eRho=2                                                                                \
$Z                                                pTheta=2  pPhi=2    pAlpha=2                                                          \
$Z                                                tTheta=0  tPhi=0    tAlpha=0                                                          \
$Z                                                visualiser_appartenance=VRAI                                                          \
$Z                                                R=$_____ImageT1.                                                                      \
$Z                                                                              $formatI

$Z                            FilSTmpE            CoMpOsAnTe_J

$Z                            _____include(_____xiirc/.MANE.41.1._____U)
$Z                            _____include(_____xiirc/.MANE.41.2._____U)
$Z                            _____include(_____xiirc/.MANE.41.3._____U)
$Z                            set       _____ImageTT=$_____ImageTo
$Z                            set                 _____RotationX=0
$Z                            set       _____imagesR=$__________imagesR.$NuMeRo_CoUrAnT
$Z                            SET       _____Detruire_=$EXIST
$Z                            SET       _____Detruire_1=$EXIST
$Z                            SET       _____Detruire_2=$NEXIST
$Z                            SET       _____Detruire_2_1=$EXIST
$Z                            _____include(_____xiirc/.MANE.41.4._____U)

$Z                            execRVB   $MV       $_____imagesR.2%s $_____imagesR%s

$Z                            FilSTmpE            _____ImageT1
$Z        end

$Z        FilSTmpE            FLiStE_FeNeTrEs



Copyright © Jean-François Colonna, 2019-2021.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / Ecole Polytechnique, 2019-2021.