#######################################################################################################################################
#                                                                                                                                     #
#         I N T E R S E C T I O N   D E   D E U X   S U R F A C E S  :                                                                #
#                                                                                                                                     #
#                                                                                                                                     #
#         Author of '$xiirs/.PROK.Q1.1.$U' :                                                                                          #
#                                                                                                                                     #
#                     Jean-Francois COLONNA (LACTAMME, 20200801105432).                                                               #
#                                                                                                                                     #
#######################################################################################################################################

$Z                  setParam            _____Epsilon                  0.010

$Z                  setParam            _____Zoom                     1.0

$Z                  setParam            _____NAuCarre                 VRAI

$Z                  setParam            _____RayonI                   0.025

$Z                  setParam            _____RougeI                   $GRIS_8

$Z                  setParam            _____VerteI                   $GRIS_6

$Z                  setParam            _____BleueI                   $GRIS_0

$Z                  SETParam            _____Display1                 $EXIST

$Z                  setParam            _____Rayon1                   0.010

$Z                  setParam            _____Rouge1                   $GRIS_6

$Z                  setParam            _____Verte1                   $GRIS_6

$Z                  setParam            _____Bleue1                   $GRIS_6

$Z                  setParam            _____Nip1                     10

$Z                  setParam            _____Npp1                     20

$Z                  setParam            _____Nim1                     40

$Z                  setParam            _____Npm1                     20

$Z                  setParam            _____Normalise1               $NEXIST
$Z                                      # Parametre introduit le 20200803124238...                                                    #

$Z                  SETParam            _____Display2                 $EXIST

$Z                  setParam            _____Rayon2                   0.010

$Z                  setParam            _____Rouge2                   $GRIS_0

$Z                  setParam            _____Verte2                   $GRIS_4

$Z                  setParam            _____Bleue2                   $GRIS_4

$Z                  setParam            _____Nip2                     20

$Z                  setParam            _____Npp2                     20

$Z                  setParam            _____Nim2                     20

$Z                  setParam            _____Npm2                     20

$Z                  setParam            _____Normalise2               $NEXIST
$Z                                      # Parametre introduit le 20200803124238...                                                    #

$Z                  FilSTmpB            FSuRfAcE1

$Z                  $xrs/project2D.01$Z $_____Surface1                                                                                  \
$Z                                      $FSuRfAcE1                                                                                      \
$Z                                      "$_____ASurface1"                                                                               \
$Z                                      $COORD_X $COORD_Y $COORD_Z                                                                      \
$Z                                      FAUX                                                                                            \
$Z                                      $_____Normalise1
$Z                                      # Projection e la surface 1.                                                                  #

$Z                  FilSTmpB            FSuRfAcE2

$Z                  $xrs/project2D.01$Z $_____Surface2                                                                                  \
$Z                                      $FSuRfAcE2                                                                                      \
$Z                                      "$_____ASurface2"                                                                               \
$Z                                      $COORD_X $COORD_Y $COORD_Z                                                                      \
$Z                                      FAUX                                                                                            \
$Z                                      $_____Normalise2
$Z                                      # Projection e la surface 2.                                                                  #

$Z                  FilSTmpB            FInTeRsEcTiOn

$Z                  $xrs/intersection3D.11$X                                                                                            \
$Z                                      Progression=VRAI                                                                                \
$Z                                      PP1X=$FSuRfAcE1$COORD_X                                                                         \
$Z                                      PP1Y=$FSuRfAcE1$COORD_Y                                                                         \
$Z                                      PP1Z=$FSuRfAcE1$COORD_Z                                                                         \
$Z                                      PP2X=$FSuRfAcE2$COORD_X                                                                         \
$Z                                      PP2Y=$FSuRfAcE2$COORD_Y                                                                         \
$Z                                      PP2Z=$FSuRfAcE2$COORD_Z                                                                         \
$Z                                      ponderation_MOYE=0                                                                              \
$Z                                      ponderation_MIN2=0                                                                              \
$Z                                      ponderation_MAX2=0                                                                              \
$Z                                      ponderation_SE12=1                                                                              \
$Z                                      ponderation_SE22=0                                                                              \
$Z                                      epsilon=$_____Epsilon                                                                           \
$Z                                                                                                                       $formatI       \
$Z                                                                                         >> $FInTeRsEcTiOn
$Z                                      # Intersection des surfaces 1 et 2. La ponderation 'SE12' est selectionnee afin que les       #
$Z                                      # points de l'intersection appartiennent bien (visuellement...) a la surface 1...             #

$Z                  $CA                 $FInTeRsEcTiOn                                                                            |     \
$Z                  $AW                 ' { print $1 } '                                                                          |     \
$Z                  $SE                 -e "s/^.*=//"                                                                                   \
$Z                                                                                         >  $FInTeRsEcTiOn$COORD_X

$Z                  $CA                 $FInTeRsEcTiOn                                                                            |     \
$Z                  $AW                 ' { print $2 } '                                                                          |     \
$Z                  $SE                 -e "s/^.*=//"                                                                                   \
$Z                                                                                         >  $FInTeRsEcTiOn$COORD_Y

$Z                  $CA                 $FInTeRsEcTiOn                                                                            |     \
$Z                  $AW                 ' { print $3 } '                                                                          |     \
$Z                  $SE                 -e "s/^.*=//"                                                                                   \
$Z                                                                                         >  $FInTeRsEcTiOn$COORD_Z

$Z                  set                 NPoInTsX=`$CA $FInTeRsEcTiOn$COORD_X | $WCl`
$Z                  set                 NPoInTsY=`$CA $FInTeRsEcTiOn$COORD_Y | $WCl`
$Z                  set                 NPoInTsZ=`$CA $FInTeRsEcTiOn$COORD_Z | $WCl`
#20220615104915____:$Z                  set                 NPoInTs_=`$xcg/MAX3.01$X x=$NPoInTsX y=$NPoInTsY z=$NPoInTsZ`             #
$Z                  set                 NPoInTs_=`$xcg/MIN3.01$X x=$NPoInTsX y=$NPoInTsY z=$NPoInTsZ`

$Z                  set                 EcLaIrAgE="Lz=100 DepthCueingMinimal=0.2 DepthCueingMaximal=1"
$Z                  set                 LiStEr="lister_les_points=VRAI lister_les_points_apres=VRAI"

$Z                  FilSTmpB            FLiStE_PoInTs

$Z                  $xrv/particule.10$X                                                                                                 \
$Z                                      nombre_points=$NPoInTs_                                                                         \
$Z                                      nombre_periodes=1                                                                               \
$Z                                      LISTE_X=$FInTeRsEcTiOn$COORD_X                                                                  \
$Z                                      LISTE_Y=$FInTeRsEcTiOn$COORD_Y                                                                  \
$Z                                      LISTE_Z=$FInTeRsEcTiOn$COORD_Z                                                                  \
$Z                                      AXYZ=1 BXYZ=0                                                                                   \
$Z                                      LISTE_ROUGE=$_____RougeI                                                                        \
$Z                                      LISTE_VERTE=$_____VerteI                                                                        \
$Z                                      LISTE_BLEUE=$_____BleueI                                                                        \
$Z                                      N_au_carre=$_____NAuCarre                                                                       \
$Z                                      ZOOM=$_____Zoom                                                                                 \
$Z                                      rayon_de_visualisation=$_____RayonI                                                             \
$Z                                      Z-Buffer=VRAI Z=$xTV/Z_BUFFER message_brume_ZB=FAUX                                             \
$Z                                      chiffres=0                                                                                      \
$Z                                      $LiStEr                                                                                         \
$Z                                      editer_extrema_hors=FAUX                                                                        \
$Z                                      R=$xTV/INTERSECTION                                                                             \
$Z                                                                                                                       $formatI       \
$Z                                                                                         >> $FLiStE_PoInTs
$Z                                      # Trace de l'intersection des surfaces 1 et 2.                                                #

$Z                  FilSTmpE            FInTeRsEcTiOn

$Z                  if                  ($_____Display1 == $EXIST) then
$Z                                      set                 ArGuMeNtS="$K_VIDE"
$Z                                      set                 ArGuMeNtS="$ArGuMeNtS"" N_au_carre=$_____NAuCarre"
$Z                                      set                 ArGuMeNtS="$ArGuMeNtS"" nombre_inter_paralleles=$_____Nip1"
$Z                                      set                 ArGuMeNtS="$ArGuMeNtS"" nombre_points_entre_deux_paralleles=$_____Npp1"
$Z                                      set                 ArGuMeNtS="$ArGuMeNtS"" nombre_inter_meridiens=$_____Nim1"
$Z                                      set                 ArGuMeNtS="$ArGuMeNtS"" nombre_points_entre_deux_meridiens=$_____Npm1"
$Z                                      set                 ArGuMeNtS="$ArGuMeNtS"" faciliter_parametrage_u_v=VRAI"
$Z                                      set                 ArGuMeNtS="$ArGuMeNtS"" RVB=FAUX"
$Z                                      set                 ArGuMeNtS="$ArGuMeNtS"" $LiStEr"

$Z                                      $xrs/project2D.02$Z                                                                             \
$Z                                                          $FSuRfAcE1                                                                  \
$Z                                                          $xTV/SURFACE1                                                               \
$Z                                                          "$ArGuMeNtS"                                                                \
$Z                                                          $COORD_X $COORD_Y $COORD_Z                                                  \
$Z                                                          $_____Zoom                                                                  \
$Z                                                          0 0 0                                                                       \
$Z                                                          FAUX                                                                        \
$Z                                                          "$K_VIDE" "$K_VIDE"                                                         \
$Z                                                          $NEXIST                                                               |     \
$Z                                      $SE                 -e "s/\( ROUGE=\)[^ ][^ ]*\( \)/\1$_____Rouge1\2/"                          \
$Z                                                          -e "s/\( VERTE=\)[^ ][^ ]*\( \)/\1$_____Verte1\2/"                          \
$Z                                                          -e "s/\( BLEUE=\)[^ ][^ ]*\( \)/\1$_____Bleue1\2/"                          \
$Z                                                                                                             >> $FLiStE_PoInTs
$Z                                      # Trace de la surface 1.                                                                      #
$Z                  else
$Z                  endif

$Z                  FilSTmpE            FSuRfAcE1

$Z                  if                  ($_____Display2 == $EXIST) then
$Z                                      set                 ArGuMeNtS="$K_VIDE"
$Z                                      set                 ArGuMeNtS="$ArGuMeNtS"" N_au_carre=$_____NAuCarre"
$Z                                      set                 ArGuMeNtS="$ArGuMeNtS"" nombre_inter_paralleles=$_____Nip2"
$Z                                      set                 ArGuMeNtS="$ArGuMeNtS"" nombre_points_entre_deux_paralleles=$_____Npp2"
$Z                                      set                 ArGuMeNtS="$ArGuMeNtS"" nombre_inter_meridiens=$_____Nim2"
$Z                                      set                 ArGuMeNtS="$ArGuMeNtS"" nombre_points_entre_deux_meridiens=$_____Npm2"
$Z                                      set                 ArGuMeNtS="$ArGuMeNtS"" faciliter_parametrage_u_v=VRAI"
$Z                                      set                 ArGuMeNtS="$ArGuMeNtS"" RVB=FAUX"
$Z                                      set                 ArGuMeNtS="$ArGuMeNtS"" $LiStEr"

$Z                                      $xrs/project2D.02$Z                                                                             \
$Z                                                          $FSuRfAcE2                                                                  \
$Z                                                          $xTV/SURFACE2                                                               \
$Z                                                          "$ArGuMeNtS"                                                                \
$Z                                                          $COORD_X $COORD_Y $COORD_Z                                                  \
$Z                                                          $_____Zoom                                                                  \
$Z                                                          0 0 0                                                                       \
$Z                                                          FAUX                                                                        \
$Z                                                          "$K_VIDE" "$K_VIDE"                                                         \
$Z                                                          $NEXIST                                                               |     \
$Z                                      $SE                 -e "s/\( ROUGE=\)[^ ][^ ]*\( \)/\1$_____Rouge2\2/"                          \
$Z                                                          -e "s/\( VERTE=\)[^ ][^ ]*\( \)/\1$_____Verte2\2/"                          \
$Z                                                          -e "s/\( BLEUE=\)[^ ][^ ]*\( \)/\1$_____Bleue2\2/"                          \
$Z                                                                                                             >> $FLiStE_PoInTs
$Z                                      # Trace de la surface 2.                                                                      #
$Z                  else
$Z                  endif

$Z                  FilSTmpE            FSuRfAcE2

$Z                  FilSTmpB            FSuRfAcE12

$Z                  $CA                 $FLiStE_PoInTs                                                                            |     \
$Z                  $SE                 -e "s/^.* X=//"                                                                                 \
$Z                                      -e 's/^\([^ ][^ ]*\) .*$/\1/'                                                                   \
$Z                                                                                         >  $FSuRfAcE12$COORD_X

$Z                  $CA                 $FLiStE_PoInTs                                                                            |     \
$Z                  $SE                 -e "s/^.* Y=//"                                                                                 \
$Z                                      -e 's/^\([^ ][^ ]*\) .*$/\1/'                                                                   \
$Z                                                                                         >  $FSuRfAcE12$COORD_Y

$Z                  $CA                 $FLiStE_PoInTs                                                                            |     \
$Z                  $SE                 -e "s/^.* Z=//"                                                                                 \
$Z                                      -e 's/^\([^ ][^ ]*\) .*$/\1/'                                                                   \
$Z                                                                                         >  $FSuRfAcE12$COORD_Z

$Z                  $CA                 $FLiStE_PoInTs                                                                            |     \
$Z                  $SE                 -e "s/^.* RAYON=//"                                                                             \
$Z                                      -e 's/^\([^ ][^ ]*\) .*$/\1/'                                                                   \
$Z                                                                                         >  $FSuRfAcE12$RAYON

$Z                  $CA                 $FLiStE_PoInTs                                                                            |     \
$Z                  $SE                 -e "s/^.* ROUGE=//"                                                                             \
$Z                                      -e 's/^\([^ ][^ ]*\) .*$/\1/'                                                                   \
$Z                                                                                         >  $FSuRfAcE12$ROUGE

$Z                  $CA                 $FLiStE_PoInTs                                                                            |     \
$Z                  $SE                 -e "s/^.* VERTE=//"                                                                             \
$Z                                      -e 's/^\([^ ][^ ]*\) .*$/\1/'                                                                   \
$Z                                                                                         >  $FSuRfAcE12$VERTE

$Z                  $CA                 $FLiStE_PoInTs                                                                            |     \
$Z                  $SE                 -e "s/^.* BLEUE=//"                                                                             \
$Z                                      -e 's/^\([^ ][^ ]*\) .*$/\1/'                                                                   \
$Z                                                                                         >  $FSuRfAcE12$BLEUE

$Z                  set                 NPoInTsX=`$CA $FSuRfAcE12$COORD_X | $WCl`
$Z                  set                 NPoInTsY=`$CA $FSuRfAcE12$COORD_Y | $WCl`
$Z                  set                 NPoInTsZ=`$CA $FSuRfAcE12$COORD_Z | $WCl`
#20220615104915____:$Z                  set                 NPoInTs_=`$xcg/MAX3.01$X x=$NPoInTsX y=$NPoInTsY z=$NPoInTsZ`             #
$Z                  set                 NPoInTs_=`$xcg/MIN3.01$X x=$NPoInTsX y=$NPoInTsY z=$NPoInTsZ`

$Z                  $xrv/particule.10$X                                                                                                 \
$Z                                      nombre_points=$NPoInTs_                                                                         \
$Z                                      nombre_periodes=1                                                                               \
$Z                                      LISTE_X=$FSuRfAcE12$COORD_X                                                                     \
$Z                                      LISTE_Y=$FSuRfAcE12$COORD_Y                                                                     \
$Z                                      LISTE_Z=$FSuRfAcE12$COORD_Z                                                                     \
$Z                                      LISTE_RAYON=$FSuRfAcE12$RAYON                                                                   \
$Z                                      LISTE_ROUGE=$FSuRfAcE12$ROUGE                                                                   \
$Z                                      LISTE_VERTE=$FSuRfAcE12$VERTE                                                                   \
$Z                                      LISTE_BLEUE=$FSuRfAcE12$BLEUE                                                                   \
$Z                                      N_au_carre=$_____NAuCarre                                                                       \
$Z                                      ZOOM=$_____Zoom                                                                                 \
$Z                                      chiffres=0                                                                                      \
$Z                                      $EcLaIrAgE                                                                                      \
$Z                                      couronne=2                                                                                      \
$Z                                      editer_extrema_hors=FAUX                                                                        \
$Z                                      R=$_____ImageR                                                                                  \
$Z                                                                                                                       $formatI
$Z                                      # Trace des surfaces 1 et 2 (chacune en option) et de leur intersection.                      #

$Z                  FilSTmpE            FSuRfAcE12



Copyright © Jean-François COLONNA, 2020-2024.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2020-2024.