#######################################################################################################################################
#                                                                                                                                     #
#         G E N E R A T I O N   D ' U N   H Y P E R - C U B E  :                                                                      #
#                                                                                                                                     #
#                                                                                                                                     #
#         Author of '$xiirv/.CUBE.11.1.$U' :                                                                                          #
#                                                                                                                                     #
#                     Jean-Francois Colonna (LACTAMME, 20130524100408).                                                               #
#                                                                                                                                     #
#######################################################################################################################################

$Z                  SETParam            _____GCube5                   $EXIST
$Z                                      # Parametre introduit le 20200429103749...                                                    #

$Z                  SETParam            _____GCube4                   $EXIST
$Z                                      # Parametre introduit le 20140308105607...                                                    #

$Z                  SETParam            _____GCube3                   $EXIST
$Z                                      # Parametre introduit le 20140308105607...                                                    #

$Z                  SETParam            _____GCube2                   $EXIST
$Z                                      # Parametre introduit le 20140308105607...                                                    #

$Z                  SETParam            _____GCube1                   $EXIST
$Z                                      # Parametre introduit le 20140308105607...                                                    #

$Z                  SETParam            _____GCube0                   $EXIST
$Z                                      # Parametre introduit le 20140308105607...                                                    #

$Z                  setParam            _____Echelle                  0.1

$Z                  setParam            _____RAYON_Cube               0.01

$Z                  setParam            _____ROUGE_Cube               $GRIS_8

$Z                  setParam            _____VERTE_Cube               $GRIS_8

$Z                  setParam            _____BLEUE_Cube               $GRIS_8

$Z                  setParam            _____RAYON_Lien               0.005

$Z                  setParam            _____ROUGE_Lien               $GRIS_8

$Z                  setParam            _____VERTE_Lien               $GRIS_4

$Z                  setParam            _____BLEUE_Lien               $GRIS_0

$Z                  setParam            _____Argument0                "$K_VIDE"
$Z                                      # Parametre introduit le 20140318152603...                                                    #

$Z                  setParam            _____Argument1                "$K_VIDE"
$Z                                      # Parametre introduit le 20140318152603...                                                    #

$Z                  setParam            _____Argument2                "$K_VIDE"
$Z                                      # Parametre introduit le 20140318152603...                                                    #

$Z                  setParam            _____Argument3                "$K_VIDE"

$Z                  setParam            _____Argument4                "$K_VIDE"

$Z                  setParam            _____Argument5                "$K_VIDE"
$Z                                      # Parametre introduit le 20200428174454...                                                    #

$Z                  alias     GC_A      'set       Cursor_ROUGE=\!:1                                                              ;    \\
$Z                                       set       Cursor_VERTE=\!:2                                                              ;    \\
$Z                                       set       Cursor_BLEUE=\!:3                                                              ;    \\
$Z                                       set       Cursor_RAYON=\!:4                                                              ;    \\
$Z                                       G_A'
$Z                  alias     GC_B      'set       Cursor_ROUGE=\!:1                                                              ;    \\
$Z                                       set       Cursor_VERTE=\!:2                                                              ;    \\
$Z                                       set       Cursor_BLEUE=\!:3                                                              ;    \\
$Z                                       set       Cursor_RAYON=\!:4                                                              ;    \\
$Z                                       G_B'

$Z                  set       Sommet1=1
$Z                  set       Sommet2=2
$Z                  set       Sommet3=3
$Z                  set       Sommet4=4

$Z                  set       ListeSommet=($Sommet1 $Sommet2 $Sommet3 $Sommet4)

$Z                  set       Face1=1
$Z                  set       Face2=2
$Z                  set       ListeFace=($Face1 $Face2)

$Z                  set       Cube1=1
$Z                  set       Cube2=2
$Z                  set       ListeCube=($Cube1 $Cube2)

$Z                  set       HyperCube1=1
$Z                  set       HyperCube2=2
$Z                  set       ListeHyperCube=($HyperCube1 $HyperCube2)

$Z                  source    $xrd/graph.01$vv$Y
$Z                  G_Init

$Z                  G_MIC     HyperCube_Origine

$Z                  set       Echelle_K=$_____Echelle

$Z                  foreach   HyperCube ($ListeHyperCube)
$Z                            G_MOC     HyperCube_Origine

$Z                            switch    ("$HyperCube")
$Z                                      case "$HyperCube1":
$Z                                                set       Echelle_K=`$xcg/MUL2.01$X a=1.10 b=$_____Echelle`
$Z                                                G_1
$Z                                      # Definition de la position et de l'echelle du 4-cube de droite...                            #
$Z                                                breaksw
$Z                                      case "$HyperCube2":
$Z                                                set       Echelle_K=`$xcg/MUL2.01$X a=0.38 b=$_____Echelle`
$Z                                                G_3 ; G_3 ; G_3 ; G_3 ; G_3 ; G_3 ; G_3 ; G_3 ; G_3
$Z                                                G_2 ; G_2
$Z                                      # Definition de la position et de l'echelle du 4-cube de gauche...                            #
$Z                                                breaksw
$Z                                      default:
$Z                                                set       Echelle_K=`$xcg/MUL2.01$X a=1.0 b=$_____Echelle`
$Z                                                breaksw
$Z                            endsw

$Z                            G_MIC     Cube_Origine

$Z                            foreach   Cube ($ListeCube)
$Z                                      G_MOC     Cube_Origine

$Z                                      G_1
$Z                                      G_4
$Z                                      G_5

$Z                                      foreach   Face ($ListeFace)
$Z                                                G_MIC     HyperCube_$Sommet1$Face$Cube$HyperCube
$Z                                                G_2 ; G_2
$Z                                                G_MIC     HyperCube_$Sommet2$Face$Cube$HyperCube
$Z                                                G_3 ; G_3
$Z                                                G_MIC     HyperCube_$Sommet3$Face$Cube$HyperCube
$Z                                                G_4 ; G_4
$Z                                                G_MIC     HyperCube_$Sommet4$Face$Cube$HyperCube

$Z                                                G_MOC     HyperCube_$Sommet1$Face$Cube$HyperCube
$Z                                                G_6 ; G_6
$Z                                      end

$Z                                      set       Echelle_K=`$xcg/MUL2.01$X a=2 b=$Echelle_K`
$Z                            end
$Z                  end
$Z                                      # Definition de l'ensemble des sommets du 5-cube (c'est-a-dire un hyper-hyper-cube...).       #

$Z                  foreach   HyperCube ($ListeHyperCube)
$Z                            foreach   Cube ($ListeCube)
$Z                                      foreach   Face ($ListeFace)
$Z                                                G_MOC     HyperCube_$Sommet1$Face$Cube$HyperCube
$Z                                                GC_A $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube
$Z                                                G_MOC     HyperCube_$Sommet2$Face$Cube$HyperCube
$Z                                                GC_B $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube
$Z                                                G_MOC     HyperCube_$Sommet3$Face$Cube$HyperCube
$Z                                                GC_B $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube
$Z                                                G_MOC     HyperCube_$Sommet4$Face$Cube$HyperCube
$Z                                                GC_B $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube
$Z                                                G_MOC     HyperCube_$Sommet1$Face$Cube$HyperCube
$Z                                                GC_B $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube
$Z                                      end
$Z                                      # Trace d'un des deux hyper-cubes faits de deux cubes imbriques.                              #
$Z                            end
$Z                  end

$Z                  foreach   HyperCube ($ListeHyperCube)
$Z                            foreach   Cube ($ListeCube)
$Z                                      foreach   Sommet ($ListeSommet)
$Z                                                G_MOC     HyperCube_$Sommet$Face1$Cube$HyperCube
$Z                                                GC_A $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube
$Z                                                G_MOC     HyperCube_$Sommet$Face2$Cube$HyperCube
$Z                                                GC_B $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube
$Z                                      end
$Z                                      # Trace des liens entre les deux cubes composant un hyper-cube...                             #
$Z                            end
$Z                  end

$Z                  foreach   HyperCube ($ListeHyperCube)
$Z                            foreach   Cube ($ListeCube)
$Z                                      foreach   Sommet ($ListeSommet)
$Z                                                foreach   Face ($ListeFace)
$Z                                                          G_MOC     HyperCube_$Sommet$Face$Cube1$HyperCube
$Z                                                          GC_A $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube
$Z                                                          G_MOC     HyperCube_$Sommet$Face$Cube2$HyperCube
$Z                                                          GC_B $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube
$Z                                                end
$Z                                      # Trace des liens entre les deux cubes composant un hyper-cube...                             #
$Z                                      end
$Z                            end
$Z                  end

$Z                  foreach   Cube ($ListeCube)
$Z                            foreach   Sommet ($ListeSommet)
$Z                                      foreach   Face ($ListeFace)
$Z                                                G_MOC     HyperCube_$Sommet$Face$Cube$HyperCube1
$Z                                                GC_A $_____ROUGE_Lien $_____VERTE_Lien $_____BLEUE_Lien $_____RAYON_Lien
$Z                                                G_MOC     HyperCube_$Sommet$Face$Cube$HyperCube2
$Z                                                GC_B $_____ROUGE_Lien $_____VERTE_Lien $_____BLEUE_Lien $_____RAYON_Lien
$Z                                      # Trace des liens entre le 4-cube de gauche et le 4-cube de droite du 5-cube...               #
$Z                                      end
$Z                            end
$Z                  end

$Z                  if        ($_____GCube5 == $EXIST) then
$Z                            G_Genere  $_____ImageR.5      $_____Argument5
$Z                                      # Generation du 5-cube (c'est-a-dire un hyper-hyper-cube...).                                 #
$Z                  else
$Z                  endif

$Z                  source    $xrd/graph.01$vv$Y
$Z                  G_Init
$Z                  set       Echelle_K=$_____Echelle

$Z                  G_MIC     Cube_Origine

$Z                  foreach   Cube ($ListeCube)
$Z                            G_MOC     Cube_Origine
$Z                            G_1
$Z                            G_4
$Z                            G_5

$Z                            foreach   Face ($ListeFace)
$Z                                      G_MIC     Cube_$Sommet1$Face$Cube
$Z                                      G_2 ; G_2
$Z                                      G_MIC     Cube_$Sommet2$Face$Cube
$Z                                      G_3 ; G_3
$Z                                      G_MIC     Cube_$Sommet3$Face$Cube
$Z                                      G_4 ; G_4
$Z                                      G_MIC     Cube_$Sommet4$Face$Cube

$Z                                      G_MOC     Cube_$Sommet1$Face$Cube
$Z                                      G_6 ; G_6
$Z                            end

$Z                            set       Echelle_K=`$xcg/MUL2.01$X a=2 b=$Echelle_K`
$Z                                      # Ainsi, le cube exterieur sera deux fois plus grand que le cube interieur...                 #
$Z                  end
$Z                                      # Definition de l'ensemble des sommets du 4-cube (c'est-a-dire un hyper-cube...).             #

$Z                  foreach   Cube ($ListeCube)
$Z                            foreach   Face ($ListeFace)
$Z                                      G_MOC     Cube_$Sommet1$Face$Cube
$Z                                      GC_A $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube
$Z                                      G_MOC     Cube_$Sommet2$Face$Cube
$Z                                      GC_B $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube
$Z                                      G_MOC     Cube_$Sommet3$Face$Cube
$Z                                      GC_B $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube
$Z                                      G_MOC     Cube_$Sommet4$Face$Cube
$Z                                      GC_B $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube
$Z                                      G_MOC     Cube_$Sommet1$Face$Cube
$Z                                      GC_B $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube
$Z                                      # Trace de chacune des six faces des 3-cubes interieur et exterieur du 4-cube...              #
$Z                            end
$Z                                      # Trace du 3-cube interieur et du 3-cube exterieur du 4-cube...                               #
$Z                  end

$Z                  foreach   Cube ($ListeCube)
$Z                            foreach   Sommet ($ListeSommet)
$Z                                      G_MOC     Cube_$Sommet$Face1$Cube
$Z                                      GC_A $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube
$Z                                      G_MOC     Cube_$Sommet$Face2$Cube
$Z                                      GC_B $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube
$Z                            end
$Z                  end

$Z                  foreach   Sommet ($ListeSommet)
$Z                            foreach   Face ($ListeFace)
$Z                                      G_MOC     Cube_$Sommet$Face$Cube1
$Z                                      GC_A $_____ROUGE_Lien $_____VERTE_Lien $_____BLEUE_Lien $_____RAYON_Lien
$Z                                      G_MOC     Cube_$Sommet$Face$Cube2
$Z                                      GC_B $_____ROUGE_Lien $_____VERTE_Lien $_____BLEUE_Lien $_____RAYON_Lien
$Z                                      # Trace des liens entre le 3-cube interieur et le 3-cube exterieur du 4-cube...               #
$Z                            end
$Z                  end

$Z                  if        ($_____GCube4 == $EXIST) then
$Z                            G_Genere  $_____ImageR.4      $_____Argument4
$Z                                      # Generation du 4-cube (c'est-a-dire un hyper-cube...).                                       #
$Z                  else
$Z                  endif

$Z                  source    $xrd/graph.01$vv$Y
$Z                  G_Init
$Z                  set       Echelle_K=`$xcg/MUL2.01$X a=2 b=$_____Echelle`

$Z                  G_MIC     Carre_Origine

$Z                  set       Carre1=1
$Z                  set       Carre2=2
$Z                  set       ListeCarre=($Carre1 $Carre2)

$Z                  G_1
$Z                  G_4
$Z                  G_5

$Z                  foreach   Carre ($ListeCarre)

$Z                            G_MIC     Carre_$Sommet1$Carre
$Z                            G_2 ; G_2
$Z                            G_MIC     Carre_$Sommet2$Carre
$Z                            G_3 ; G_3
$Z                            G_MIC     Carre_$Sommet3$Carre
$Z                            G_4 ; G_4
$Z                            G_MIC     Carre_$Sommet4$Carre

$Z                            G_MOC     Carre_$Sommet1$Carre
$Z                            G_6 ; G_6
$Z                  end
$Z                                      # Definition de l'ensemble des sommets du 3-cube (c'est-a-dire un cube...).                   #

$Z                  foreach   Carre ($ListeCarre)
$Z                            G_MOC     Carre_$Sommet1$Carre
$Z                                      GC_A $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube
$Z                            G_MOC     Carre_$Sommet2$Carre
$Z                                      GC_B $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube
$Z                            G_MOC     Carre_$Sommet3$Carre
$Z                                      GC_B $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube
$Z                            G_MOC     Carre_$Sommet4$Carre
$Z                                      GC_B $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube
$Z                            G_MOC     Carre_$Sommet1$Carre
$Z                                      GC_B $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube
$Z                                      # Trace des 2-cubes (de devant et de derriere) comme un contour ferme (d'ou le {A,B,B,B,B}).  #
$Z                  end

$Z                  foreach   Sommet ($ListeSommet)
$Z                            G_MOC     Carre_$Sommet$Carre1
$Z                                      GC_A $_____ROUGE_Lien $_____VERTE_Lien $_____BLEUE_Lien $_____RAYON_Lien
$Z                            G_MOC     Carre_$Sommet$Carre2
$Z                                      GC_B $_____ROUGE_Lien $_____VERTE_Lien $_____BLEUE_Lien $_____RAYON_Lien
$Z                                      # Trace des liens entre le 2-cube de devant et le 2-cube de derriere du 3-cube...             #
$Z                  end

$Z                  if        ($_____GCube3 == $EXIST) then
$Z                            G_Genere  $_____ImageR.3      $_____Argument3
$Z                                      # Generation du 3-cube (c'est-a-dire un cube...).                                             #
$Z                  else
$Z                  endif

$Z                  source    $xrd/graph.01$vv$Y
$Z                  G_Init
$Z                  set       Echelle_K=`$xcg/MUL2.01$X a=2 b=$_____Echelle`

$Z                  G_MIC     Segment_Origine

$Z                  set       ListeSommet=($Sommet1 $Sommet2)

$Z                  set       Segment1=1
$Z                  set       Segment2=2
$Z                  set       ListeSegment=($Segment1 $Segment2)

$Z                  G_1
$Z                  G_4

$Z                  foreach   Segment ($ListeSegment)
$Z                            G_MIC     Segment_$Sommet1$Segment
$Z                            G_2 ; G_2
$Z                            G_MIC     Segment_$Sommet2$Segment

$Z                            G_MOC     Segment_$Sommet1$Segment
$Z                            G_3 ; G_3
$Z                  end
$Z                                      # Definition de l'ensemble des sommets du 2-cube (c'est-a-dire un carre...).                  #

$Z                  foreach   Segment ($ListeSegment)
$Z                            G_MOC     Segment_$Sommet1$Segment
$Z                                      GC_A $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube
$Z                            G_MOC     Segment_$Sommet2$Segment
$Z                                      GC_B $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube
$Z                            G_MOC     Segment_$Sommet1$Segment
$Z                                      GC_B $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube
$Z                                      # Trace des 1-cubes (de gauche et de droite) comme un contour ferme (d'ou le {A,B,B}).        #
$Z                  end

$Z                  foreach   Sommet ($ListeSommet)
$Z                            G_MOC     Segment_$Sommet$Segment1
$Z                                      GC_A $_____ROUGE_Lien $_____VERTE_Lien $_____BLEUE_Lien $_____RAYON_Lien
$Z                            G_MOC     Segment_$Sommet$Segment2
$Z                                      GC_B $_____ROUGE_Lien $_____VERTE_Lien $_____BLEUE_Lien $_____RAYON_Lien
$Z                                      # Trace des liens entre le 1-cube de gauche et le 1-cube de droite du 2-cube...               #
$Z                  end

$Z                  if        ($_____GCube2 == $EXIST) then
#20140318152603____:$Z                            G_Genere  $_____ImageR.2                                                            #
$Z                            G_Genere  $_____ImageR.2      $_____Argument2
$Z                                      # Generation du 2-cube (c'est-a-dire un carre...).                                            #
$Z                  else
$Z                  endif

$Z                  source    $xrd/graph.01$vv$Y
$Z                  G_Init
$Z                  set       Echelle_K=`$xcg/MUL2.01$X a=2 b=$_____Echelle`

$Z                  G_4

$Z                  GC_A $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube
$Z                  GC_B $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube
$Z                                      # Trace du 0-cube du bas du 1-cube...                                                         #

$Z                  G_2 ; G_2

$Z                  GC_A $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube
$Z                  GC_B $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube
$Z                                      # Trace du 0-cube du haut du 1-cube...                                                        #

$Z                  GC_A $_____ROUGE_Lien $_____VERTE_Lien $_____BLEUE_Lien $_____RAYON_Lien
$Z                  G_4 ; G_4
$Z                  GC_B $_____ROUGE_Lien $_____VERTE_Lien $_____BLEUE_Lien $_____RAYON_Lien
$Z                                      # Trace des liens entre le 0-cube du bas et le 0-cube du haut du 1-cube...                    #

$Z                  if        ($_____GCube1 == $EXIST) then
#20140318152603____:$Z                            G_Genere  $_____ImageR.1                                                            #
$Z                            G_Genere  $_____ImageR.1      $_____Argument1
$Z                                      # Generation du 1-cube (c'est-a-dire un segment...).                                          #
$Z                  else
$Z                  endif

$Z                  source    $xrd/graph.01$vv$Y
$Z                  G_Init
$Z                  set       Echelle_K=`$xcg/MUL2.01$X a=2 b=$_____Echelle`

$Z                  GC_A $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube
$Z                  GC_B $_____ROUGE_Cube $_____VERTE_Cube $_____BLEUE_Cube $_____RAYON_Cube

$Z                  if        ($_____GCube0 == $EXIST) then
#20140318152603____:$Z                            G_Genere  $_____ImageR.0                                                            #
$Z                            G_Genere  $_____ImageR.0      $_____Argument0
$Z                                      # Generation du 0-cube (c'est-a-dire un point...).                                            #
$Z                  else
$Z                  endif



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