#######################################################################################################################################
#                                                                                                                                     #
#         E P I C Y C L E S   D E   P T O L E M E E  :                                                                                #
#                                                                                                                                     #
#                                                                                                                                     #
#         Author of '$xiirk/.EPIC.11.5.$U' :                                                                                          #
#                                                                                                                                     #
#                     Jean-Francois Colonna (LACTAMME, 20191002152717).                                                               #
#                                                                                                                                     #
#######################################################################################################################################

$Z                  setParam            _____TraceSegment             $NEXIST
$Z                                      # Argument introduit le 20191003073059...                                                     #

$Z                  setParam            _____DistanceMini             0.010
$Z                                      # Argument introduit le 20191003073059...                                                     #

$Z                  set                 CoOrDoNnEeZ=`GetParam $xrv/particule.10$X LISTE_Z`

$Z                  $xci/valeurs_trig$X                                                                                                 \
$Z                                      $PaRaMeTrEs1                                                                                    \
$Z                                      derniere=$_____NTrajectoire                                                                     \
$Z                                      rD=$_____REpicycle rA=$_____REpicycle                                                           \
$Z                                      tA=$_____TEpicycle2                                                                             \
$Z                                      alpha=1 beta=0                                                                                  \
$Z                                                                    >  $FEpicycle2$COORD_X

$Z                  $xci/valeurs_trig$X                                                                                                 \
$Z                                      $PaRaMeTrEs1                                                                                    \
$Z                                      derniere=$_____NTrajectoire                                                                     \
$Z                                      rD=$_____REpicycle rA=$_____REpicycle                                                           \
$Z                                      tA=$_____TEpicycle2                                                                             \
$Z                                      alpha=0 beta=1                                                                                  \
$Z                                                                    >  $FEpicycle2$COORD_Y

$Z                  SETv                _____NTrajectoire=$_____Dephasage
$Z                                      # Afin de pouvoir animer la generation de la trajectoire (introduit le 20180309104740).       #

$Z                  $xrv/ADD2.11$X                                                                                                      \
$Z                                      ne=$_____NTrajectoire                                                                           \
$Z                                      fichier1=$FDeferent2$COORD_X                                                                    \
$Z                                      fichier2=$FEpicycle2$COORD_X                                                                    \
$Z                                                                    >  $FTrajectoire$COORD_X

$Z                  $xrv/ADD2.11$X                                                                                                      \
$Z                                      ne=$_____NTrajectoire                                                                           \
$Z                                      fichier1=$FDeferent2$COORD_Y                                                                    \
$Z                                      fichier2=$FEpicycle2$COORD_Y                                                                    \
$Z                                                                    >  $FTrajectoire$COORD_Y

$Z                  $xci/valeurs_inte$X                                                                                                 \
$Z                                      $PaRaMeTrEs2                                                                                    \
$Z                                      derniere=$_____NTrajectoire                                                                     \
$Z                                      vD=$_____RayonT vA=$_____RayonT                                                                 \
$Z                                                                    >  $FTrajectoire$RAYON

$Z                  set       NiVeAuTR=$GRIS_8
$Z                  set       NiVeAuTV=$GRIS_4
$Z                  set       NiVeAuTB=$GRIS_0

$Z                  $xci/valeurs_inte$X                                                                                                 \
$Z                                      $PaRaMeTrEs2                                                                                    \
$Z                                      derniere=$_____NTrajectoire                                                                     \
$Z                                      vD=$NiVeAuTR vA=$NiVeAuTR                                                                       \
$Z                                                                    >  $FTrajectoire$ROUGE

$Z                  $xci/valeurs_inte$X                                                                                                 \
$Z                                      $PaRaMeTrEs2                                                                                    \
$Z                                      derniere=$_____NTrajectoire                                                                     \
$Z                                      vD=$NiVeAuTV vA=$NiVeAuTV                                                                       \
$Z                                                                    >  $FTrajectoire$VERTE

$Z                  $xci/valeurs_inte$X                                                                                                 \
$Z                                      $PaRaMeTrEs2                                                                                    \
$Z                                      derniere=$_____NTrajectoire                                                                     \
$Z                                      vD=$NiVeAuTB vA=$NiVeAuTB                                                                       \
$Z                                                                    >  $FTrajectoire$BLEUE
$Z                                      # Definition de la trajectoire epicycloidale comme "somme" de 'Deferent2' et 'Epicycle2'.     #

$Z                  echo                "$_____XTerre"                                                                                  \
$Z                                                                    >  $FPoints$COORD_X

$Z                  echo                "$_____YTerre"                                                                                  \
$Z                                                                    >  $FPoints$COORD_Y

$Z                  echo                $CoOrDoNnEeZ                                                                                    \
$Z                                                                    >  $FPoints$COORD_Z

$Z                  echo                "$_____RTerre"                                                                                  \
$Z                                                                    >  $FPoints$RAYON

$Z                  echo                "$GRIS_0"                                                                                       \
$Z                                                                    >  $FPoints$ROUGE

$Z                  echo                "$GRIS_4"                                                                                       \
$Z                                                                    >  $FPoints$VERTE

$Z                  echo                "$GRIS_8"                                                                                       \
$Z                                                                    >  $FPoints$BLEUE
$Z                                      # Definition de la Terre.                                                                     #

$Z                  set                 FoNd_SeGmEnT="$K_VIDE"
$Z                                      # A priori, on ne trace pas de segment...                                                     #

$Z                  set                 GrIs_EqUaNt=$GRIS_4
$Z                  set                 RaYoN_EqUaNt=`calcul              $_____RTerre/4`
$Z                  set                 GrOsSiSsEmEnT=2
$Z                                      # A priori, sachant que ces definitions peuvent ne pas servir...                              #

$Z                  IfBasic             ($?_____YEquant == $EXIST) ThenBasic
$Z                                      IfBasic             ($_____TraceSegment == $EXIST) ThenBasic
$Z                                                          FileTmpB            FSegment

$Z                                                          echo                $_____XEquant                                           \
$Z                                                                                                            >  $FSegment$COORD_X

$Z                                                          echo                $_____YEquant                                           \
$Z                                                                                                            >  $FSegment$COORD_Y
$Z                                      # Definition de l'equant (introduite le 20191002155916).                                      #

$Z                                                          echo                "$CXEpicycle1"                                          \
$Z                                                                                                            >> $FSegment$COORD_X

$Z                                                          echo                "$CYEpicycle1"                                          \
$Z                                                                                                            >> $FSegment$COORD_Y
$Z                                      # Definition du centre de l'epicycle.                                                         #

$m4                                                         _____include(_____xiirk/.EPIC.11.5.1._____U)
$Z                                      # Trace du segment allant de l'equant au centre de l'epicycle (introduit sous cette forme     #
$Z                                      # le 20191004075501).                                                                         #

$Z                                                          FileTmpE            FSegment
$Z                                      ElseBasic
$Z                                                          set                 RaYoN_EqUaNt=`calcul $GrOsSiSsEmEnT*$RaYoN_EqUaNt`

$Z                                                          echo                $_____XEquant                                           \
$Z                                                                                                            >> $FPoints$COORD_X

$Z                                                          echo                $_____YEquant                                           \
$Z                                                                                                            >> $FPoints$COORD_Y

$Z                                                          set       ECoOrDoNnEeZ=`calcul $CoOrDoNnEeZ+$_____RTerre+$RaYoN_EqUaNt`
$Z                                      # ATTENTION : on triche un peu en decalant en 'Z' l'equant afin qu'il soit toujours visible   #
$Z                                      # malgre le fait que son rayon soit inferieur a celui de la Terre...                          #

$Z                                                          echo                $ECoOrDoNnEeZ                                           \
$Z                                                                                                            >> $FPoints$COORD_Z

$Z                                                          echo                $RaYoN_EqUaNt                                           \
$Z                                                                                                            >> $FPoints$RAYON

$Z                                                          echo                "$GrIs_EqUaNt"                                          \
$Z                                                                                                            >> $FPoints$ROUGE

$Z                                                          echo                "$GrIs_EqUaNt"                                          \
$Z                                                                                                            >> $FPoints$VERTE

$Z                                                          echo                "$GrIs_EqUaNt"                                          \
$Z                                                                                                            >> $FPoints$BLEUE
$Z                                      # Definition de l'equant (introduite le 20191002155916).                                      #
$Z                                      EndifBasic
$Z                  ElseBasic
$Z                                      IfBasic             ($_____TraceSegment == $EXIST) ThenBasic
$Z                                                          FileTmpB            FSegment

$Z                                                          echo                "$_____XTerre"                                          \
$Z                                                                                                            >  $FSegment$COORD_X

$Z                                                          echo                "$_____YTerre"                                          \
$Z                                                                                                            >  $FSegment$COORD_Y
$Z                                      # Definition de la Terre.                                                                     #

$Z                                                          echo                "$CXEpicycle1"                                          \
$Z                                                                                                            >> $FSegment$COORD_X

$Z                                                          echo                "$CYEpicycle1"                                          \
$Z                                                                                                            >> $FSegment$COORD_Y
$Z                                      # Definition du centre de l'epicycle.                                                         #

$m4                                                         _____include(_____xiirk/.EPIC.11.5.1._____U)
$Z                                      # Trace du segment allant de la Terre au centre de l'epicycle (introduit sous cette forme     #
$Z                                      # le 20191004075501).                                                                         #

$Z                                                          FileTmpE            FSegment
$Z                                      ElseBasic
$Z                                      EndifBasic
$Z                  EndifBasic

$Z                  set       FaCtEuR=1.5

$Z                  echo                "$CXEpicycle1"                                                                                  \
$Z                                                                    >> $FPoints$COORD_X

$Z                  echo                "$CYEpicycle1"                                                                                  \
$Z                                                                    >> $FPoints$COORD_Y

$Z                  echo                $CoOrDoNnEeZ                                                                                    \
$Z                                                                    >> $FPoints$COORD_Z

$Z                  echo                `calcul $FaCtEuR*$_____RayonT`                                                                  \
$Z                                                                    >> $FPoints$RAYON

$Z                  echo                "$NiVeAuD"                                                                                      \
$Z                                                                    >> $FPoints$ROUGE

$Z                  echo                "$NiVeAuD"                                                                                      \
$Z                                                                    >> $FPoints$VERTE

$Z                  echo                "$NiVeAuD"                                                                                      \
$Z                                                                    >> $FPoints$BLEUE
$Z                                      # Definition du centre de l'Epicycle visualise.                                               #


$Z                  set       CXTrajectoire=`$CA $FTrajectoire$COORD_X | $HEA -$_____NTrajectoire | $TAI -1`
$Z                  set       CYTrajectoire=`$CA $FTrajectoire$COORD_Y | $HEA -$_____NTrajectoire | $TAI -1`
$Z                                      # Position du point de depart de la Trajectoire.                                              #

$Z                  set       FaCtEuR=2.2

$Z                  echo                "$CXTrajectoire"                                                                                \
$Z                                                                    >> $FPoints$COORD_X

$Z                  echo                "$CYTrajectoire"                                                                                \
$Z                                                                    >> $FPoints$COORD_Y

$Z                  echo                $CoOrDoNnEeZ                                                                                    \
$Z                                                                    >> $FPoints$COORD_Z

$Z                  echo                `calcul $FaCtEuR*$_____RayonT`                                                                  \
$Z                                                                    >> $FPoints$RAYON

$Z                  set       NiVeAuER=`calculINS ($NiVeAuE+$NiVeAuTR)/2`
$Z                  set       NiVeAuEV=`calculINS ($NiVeAuE+$NiVeAuTV)/2`
$Z                  set       NiVeAuEB=`calculINS ($NiVeAuE+$NiVeAuTB)/2`
$Z                                      # Introduits le 20140804100700 afin de montrer que le premier point de la Trajectoire         #
$Z                                      # appartient a la fois a l'Epicycle et a la Trajectoire...                                    #

$Z                  echo                "$NiVeAuER"                                                                                     \
$Z                                                                    >> $FPoints$ROUGE

$Z                  echo                "$NiVeAuEV"                                                                                     \
$Z                                                                    >> $FPoints$VERTE

$Z                  echo                "$NiVeAuEB"                                                                                     \
$Z                                                                    >> $FPoints$BLEUE
$Z                                      # Definition du premier point de la Trajectoire.                                              #

$Z                  $CA                                                                                                                 \
$Z                                      $FDeferent1$COORD_X                                                                             \
$Z                                      $FEpicycle1$COORD_X                                                                             \
$Z                                      $FTrajectoire$COORD_X                                                                           \
$Z                                                                    >> $FPoints$COORD_X

$Z                  $CA                                                                                                                 \
$Z                                      $FDeferent1$COORD_Y                                                                             \
$Z                                      $FEpicycle1$COORD_Y                                                                             \
$Z                                      $FTrajectoire$COORD_Y                                                                           \
$Z                                                                    >> $FPoints$COORD_Y

$Z                  $CA                                                                                                                 \
$Z                                      $FDeferent1$COORD_Y                                                                             \
$Z                                      $FEpicycle1$COORD_Y                                                                             \
$Z                                      $FTrajectoire$COORD_Y                                                                     |     \
$Z                  $SE                 -e 's/^.*$'"/$CoOrDoNnEeZ/"                                                                     \
$Z                                                                    >> $FPoints$COORD_Z

$Z                  $CA                                                                                                                 \
$Z                                      $FDeferent1$RAYON                                                                               \
$Z                                      $FEpicycle1$RAYON                                                                               \
$Z                                      $FTrajectoire$RAYON                                                                             \
$Z                                                                    >> $FPoints$RAYON

$Z                  $CA                                                                                                                 \
$Z                                      $FDeferent1$ROUGE                                                                               \
$Z                                      $FEpicycle1$ROUGE                                                                               \
$Z                                      $FTrajectoire$ROUGE                                                                             \
$Z                                                                    >> $FPoints$ROUGE

$Z                  $CA                                                                                                                 \
$Z                                      $FDeferent1$VERTE                                                                               \
$Z                                      $FEpicycle1$VERTE                                                                               \
$Z                                      $FTrajectoire$VERTE                                                                             \
$Z                                                                    >> $FPoints$VERTE

$Z                  $CA                                                                                                                 \
$Z                                      $FDeferent1$BLEUE                                                                               \
$Z                                      $FEpicycle1$BLEUE                                                                               \
$Z                                      $FTrajectoire$BLEUE                                                                             \
$Z                                                                    >> $FPoints$BLEUE

$Z                  set            NPoInTsX=`$CA $FPoints$COORD_X | $WCl`
$Z                  set            NPoInTsY=`$CA $FPoints$COORD_Y | $WCl`
$Z                  set            NPoInTsZ=`$CA $FPoints$COORD_Z | $WCl`
$Z                  set            NPoInTs=`$xcg/MIN3.01$X x=$NPoInTsX y=$NPoInTsY z=$NPoInTsZ`

$Z                  $xrv/particule.10$X                                                                                                 \
$Z                                      np=1                                                                                            \
$Z                                      iterations=$NPoInTs                                                                             \
$Z                                      AXYZ=1 BXYZ=0                                                                                   \
$Z                                      LISTE_X=$FPoints$COORD_X                                                                        \
$Z                                      LISTE_Y=$FPoints$COORD_Y                                                                        \
$Z                                      LISTE_Z=$FPoints$COORD_Z                                                                        \
$Z                                      LISTE_RAYON=$FPoints$RAYON                                                                      \
$Z                                      LISTE_ROUGE=$FPoints$ROUGE                                                                      \
$Z                                      LISTE_VERTE=$FPoints$VERTE                                                                      \
$Z                                      LISTE_BLEUE=$FPoints$BLEUE                                                                      \
$Z                                      ZOOM=$_____Zoom                                                                                 \
$Z                                      isoles=VRAI                                                                                     \
$Z                                      Lz=100                                                                                          \
$Z                                      editer_extrema_hors=FAUX                                                                        \
$Z                                      $FoNd_SeGmEnT                                                                                   \
$Z                                      chiffres=0                                                                                      \
$Z                                      R=$_____ImagesR                                                                                 \
$Z                                                                                                                      $formatI

$Z                  FileTmpE  FPoints
$Z                  FileTmpE  FTrajectoire
$Z                  FileTmpE  FEpicycle2
$Z                  FileTmpE  FEpicycle1
$Z                  FileTmpE  FDeferent2
$Z                  FileTmpE  FDeferent1



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