#!/bin/csh

#######################################################################################################################################
#                                                                                                                                     #
#         R E C H E R C H E   D U   M E I L L E U R   C A D R A G E   V E R T I C A L                                                 #
#         P O U R   U N E   M O N T A G N E   V U E   D E   C O T E  :                                                                #
#                                                                                                                                     #
#                                                                                                                                     #
#         Utilisation :                                                                                                               #
#                                                                                                                                     #
#                   $xci/montagne.12$Z  <surface>                                                                                     #
#                                                                                                                                     #
#                                                                                                                                     #
#         Author of '$xci/montagne.12$Z' :                                                                                            #
#                                                                                                                                     #
#                     Jean-Francois Colonna (LACTAMME, AAAAMMJJhhmmss).                                                               #
#                                                                                                                                     #
#######################################################################################################################################

set       surface=$1

if        (-e $surface) then
          FileTmpB  nomM $M
                                        # Nom de la montagne temporaire que l'on est oblige de generer.                               #

          set       unite=1.0
          set       dimensionY=$dimension_formatY
#AAAAMMJJ:          set       cadrage=`$xci/montagne.01$X  A=$surface T=$xiio/BLANC R=$nomM Ty=0.0 cadrage=VRAI $formatI |& $CA`      #
          set       cadrage=`$xci/montagne.01$X  A=$surface T=$BLANC R=$nomM Ty=0.0 cadrage=VRAI $formatI Prme=VRAI`
                                        # Recherche du cadrage avec une translation verticale nulle.                                  #

          FileTmpE  nomM

          set       cadrageG=$cadrage[1]
          set       cadrageG=`$xcg/scale$X nombre=$cadrageG multiplicateur=$dimensionY diviseur=$unite entier=VRAI`
                                        # Recherche de la plus grande ordonnee sur l'ensemble de la montagne.                         #
          set       cadrageL=$cadrage[2]
          set       cadrageL=`$xcg/scale$X nombre=$cadrageL multiplicateur=$dimensionY diviseur=$unite entier=VRAI`
                                        # Recherche de la plus grande ordonnee sur la 'last' ligne de la montagne.                    #
          @         amplitude = $cadrageG - $cadrageL
          if        ($amplitude < 0) then
                    @         amplitude = 0 - $amplitude
          else
          endif
                                        # On calcule la valeur absolue de '$cadrageG - $cadrageL' (soit 'amplitude').                 #
          if        ($amplitude >= $dimensionY) then
                    @         translationY = $dimensionY - $cadrageG
                                        # Lorsque l'amplitude est plus grande que l'image, la translation verticale est donnee        #
                                        # uniquement par '$cadrageG', c'est-a-dire la plus grande ordonnee globale.                   #
          else
                    if        ($cadrageL >= 0) then
                              @         translationY = 0 - $cadrageL
                                        # Sinon, et si la plus grande ordonnee de la 'last' ligne est positive (ce qui doit           #
                                        # induire un defaut en bas), on descend suffisamment pour qu'elle disparaisse.                #
                    else
                              @         LtranslationY = 0 - $cadrageL
                              @         GtranslationY = $dimensionY - $cadrageG
                              if        ($LtranslationY < $GtranslationY) then
                                        @         translationY = $LtranslationY
                              else
                                        @         translationY = $GtranslationY
                              endif
                                        # Enfin, dans le dernier cas, on peut remonter l'image jusqu'a ce que, soit le plus           #
                                        # haut de la montagne ($cadrageG) touche en haut, soit le defaut du bas ($cadrageL)           #
                                        # "tangente" le bas de l'image.                                                               #
                    endif
          endif
          set       translationY=`$xcg/scale$X nombre=$translationY multiplicateur=$unite diviseur=$dimensionY entier=FAUX`
                                        # Recherche de la plus grande ordonnee sur la 'last' ligne de la montagne.                    #
          echo      $translationY
                                        # Edition de la meilleure translation verticale pour la montagne argument.                    #
else
          EROR      "L'image argument n'existe pas."
endif



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