#!/bin/csh ####################################################################################################################################### # # # V I S U A L I S A T I O N B I D I M E N S I O N N E L L E # # D ' U N P O I N T N - D I M E N S I O N N E L : # # # # # # Utilisation : # # # # $xrv/pt_ND_2D.11$Z [<PointA>] [<imageR>] [<Interpolation>] [<Mapping>] [<RayonA>] # # # # # # Author of '$xrv/pt_ND_2D.11$Z' : # # # # Jean-Francois Colonna (LACTAMME, AAAAMMJJhhmmss). # # # ####################################################################################################################################### GetArg PointA=$xT/PointA \ imageR=$xT/imageR \ Interpolation=0.0 \ Mapping=FAUX \ RayonA=0.01125 # Interpolation : facteur de passage de la representation etoilee ou centree (0) a une # # representation polygonale (1) du referentiel de l'espace a N dimensions. # # # # Mapping : afin de faire eventuellement un mapping de ]-infini,+infini[ --> ]-1,+1[. # # # # RayonA : definition de la taille des spheres materialisant les axes (ATTENTION, # # avant le 19971113103239, la valeur 0.030 etait utilisee). # if (-e $PointA) then set NPoints=50 # Nombre de points sur une chaine de connexion. # source $xrv/map_ND_2D.11$Y # Definition de la representation des axes. # set Zaxes=0.0 # Definition de la troisieme dimension des axes. # set RayonP=0.01500 # Rayon des boules de materialisation des points (ATTENTION, avant le 19971113103239, la # # valeur 0.040 etait utilisee). # FileTmpB nomT1 FileTmpB nomT2 FileTmpB nomT3 FileTmpB nomT4 FileTmpB nomTX FileTmpB nomTY FileTmpB nomTZ FileTmpB nomTR FileTmpB nomTV FileTmpB nomTB FileTmpB nomTr FileTmpB nomTI set nomTI=`echo "$nomTI" | $SE -e 's+^\(.*/\)[^/]*\(.......\)$+\1\2+'` # Creation de noms temporaires (dont un nom bref '$nomTI' afin d'eviter des problemes avec # # '$LONGUEUR_NOMS' dans '$xci/acces$X'). # set Dimension=`$WC $PointA` if ($Dimension[$WC1] != $Dimension[$WC2]) then EROR "Le fichier '$PointA' contient plus d'une coordonnee par ligne." else endif set Dimension=$Dimension[$WC1] # Dimension de l'espace auquel appartient le point Argument. # set Module=`$xrv/extrema.01$X ne=$Dimension fichier=$PointA |& $GRE "^module *=" | $SE -e 's/^.*\([-+].*\)$/\1/'` # Valeur absolue de la plus grande coordonnee. # set ExtensionA=`$xcg/MUL2.01$X nombre_1=$FExtensionA nombre_2=$Module` # Definition des axes de coordonnees. # repeat $Dimension echo "$ExtensionA" \ > $nomT1 # Generation d'un point auxiliaire destine a definir la representation des axes # # N-dimensionnels dans le plan {X,Y}. # $xrv/map_ND_2D.11$X nd=$Dimension fichier=$nomT1 echelle=-1 \ |& $SE -f $xrv/supATTENTION$sed \ -e "s/^axe=[0-9]* *//" \ | $R "$K_BLANC" "$K_NL" \ > $nomT2 # Generation des extremites negatives ("echelle=-1") de la representation des axes. # $xrv/map_ND_2D.11$X nd=$Dimension fichier=$nomT1 echelle=+1 \ |& $SE -f $xrv/supATTENTION$sed \ -e "s/^axe=[0-9]* *//" \ | $R "$K_BLANC" "$K_NL" \ > $nomT3 # Generation des extremites positives ("echelle=+1") de la representation des axes. # @ DimensionD = $Dimension * 2 $PAST $nomT2 $nomT3 \ | $R "$K_TAB" "$K_NL" \ > $nomT4 # Generation des couples d'extremites {negatives,positives} de la representation des axes. # $CA $nomT4 \ | $GRE "^[Xx]" \ | $SE -e "s/^[^=][^=]*=//" \ > $nomTX $CA $nomT4 \ | $GRE "^[Yy]" \ | $SE -e "s/^[^=][^=]*=//" \ > $nomTY repeat $DimensionD echo "$Zaxes" \ > $nomTZ # Definition en {X,Y,Z} de la representation bidimensionnelle des axes N-dimensionnels. # repeat $Dimension echo "$RaxesN""\n""$RaxesP" \ > $nomTR repeat $Dimension echo "$VaxesN""\n""$VaxesP" \ > $nomTV repeat $Dimension echo "$BaxesN""\n""$BaxesP" \ > $nomTB repeat $DimensionD echo "$RayonA" \ > $nomTr # Definition de l'apparence visuelle des axes. # $DELETE $nomT1 $DELETE $nomT2 $DELETE $nomT3 $DELETE $nomT4 $xrv/map_ND_2D.11$X nd=$Dimension fichier=$PointA echelle=+1 \ |& $SE -f $xrv/supATTENTION$sed \ -e "s/^axe=[0-9]* *//" \ | $R "$K_BLANC" "$K_NL" \ > $nomT3 # Generation de la representation bidimensionnelle du point Argument. # set Zpoint=$Zaxes set Rpoint=$GRIS_8 set Vpoint=$GRIS_8 set Bpoint=$GRIS_8 # Definition de la couleur du point ainsi que de sa troisieme dimension. # $PAST $nomT3 $nomT3 \ | $R "$K_TAB" "$K_NL" \ > $nomT4 # Duplication de chaque point bidimensionnel. # $DELETE $nomT1 $DELETE $nomT2 $CA $nomT4 \ | $GRE "^[Xx]" \ | $SE -e "s/^[^=][^=]*=//" \ > $nomT1 $CA $nomT4 \ | $GRE "^[Yy]" \ | $SE -e "s/^[^=][^=]*=//" \ > $nomT2 decaleC $nomT1 1 decaleC $nomT2 1 # Cette operation de decalage circulaire est destinee a former une chaine avec les # # '$Dimension' points bidimensionnels visualisant le point Argument. # $CA $nomT1 \ >>! $nomTX $CA $nomT2 \ >>! $nomTY repeat $DimensionD echo "$Zpoint" \ >>! $nomTZ # Definition en {X,Y,Z} de la representation bidimensionnelle du point Argument. # repeat $DimensionD echo "$Rpoint" \ >>! $nomTR repeat $DimensionD echo "$Vpoint" \ >>! $nomTV repeat $DimensionD echo "$Bpoint" \ >>! $nomTB repeat $DimensionD echo "$RayonP" \ >>! $nomTr # Definition de l'apparence visuelle du point Argument. # @ DimensionQ = $DimensionD * 2 set MinimumX=`$xrv/extrema.01$X ne=$DimensionD fichier=$nomTX |& $GRE "^minimum *=" | $SE -e 's/^.*\([-+].*\)$/\1/'` set MinimumY=`$xrv/extrema.01$X ne=$DimensionD fichier=$nomTY |& $GRE "^minimum *=" | $SE -e 's/^.*\([-+].*\)$/\1/'` set MinimumXY=`$xcg/MIN2.01$X nombre_1=$MinimumX nombre_2=$MinimumY` set MaximumX=`$xrv/extrema.01$X ne=$DimensionD fichier=$nomTX |& $GRE "^maximum *=" | $SE -e 's/^.*\([-+].*\)$/\1/'` set MaximumY=`$xrv/extrema.01$X ne=$DimensionD fichier=$nomTY |& $GRE "^maximum *=" | $SE -e 's/^.*\([-+].*\)$/\1/'` set MaximumXY=`$xcg/MAX2.01$X nombre_1=$MaximumX nombre_2=$MaximumY` set ExtensionX=`$xcg/SOUS.01$X nombre_1=$MaximumX nombre_2=$MinimumX` set ExtensionX=`$xcg/ABSO.01$X nombre=$ExtensionX` set ExtensionY=`$xcg/SOUS.01$X nombre_1=$MaximumY nombre_2=$MinimumY` set ExtensionY=`$xcg/ABSO.01$X nombre=$ExtensionY` set ExtensionXY=`$xcg/MAX2.01$X nombre_1=$ExtensionX nombre_2=$ExtensionY` set Homothetie=`$xcg/DIVZ.01$X nombre_1=1 nombre_2=$ExtensionXY` set TranslationX=`$xcg/MUL2.01$X nombre_1=-1 nombre_2=$MinimumX` set TranslationX=`$xcg/MUL2.01$X nombre_1=$Homothetie nombre_2=$TranslationX` set TranslationY=`$xcg/MUL2.01$X nombre_1=-1 nombre_2=$MinimumY` set TranslationY=`$xcg/MUL2.01$X nombre_1=$Homothetie nombre_2=$TranslationY` $xrv/particule.10$X np=1 \ iterations=$DimensionQ \ LISTE_X=$nomTX \ LISTE_Y=$nomTY \ LISTE_Z=$nomTZ \ LISTE_ROUGE=$nomTR \ LISTE_VERTE=$nomTV \ LISTE_BLEUE=$nomTB \ LISTE_RAYON=$nomTr \ AX=$Homothetie BX=$TranslationX \ AY=$Homothetie BY=$TranslationY \ isoles=FAUX points=$NPoints \ R=$nomTI$K_sepP \ $formatI \ |& $SE -f $xrv/supATTENTION$sed set Premiere=1 #20091105190437____: set Premiere="$K_sepP""`$xci/nombres$X premiere=$Premiere derniere=$Premiere`" # set Premiere_1="`$xci/nombres$X premiere=$Premiere derniere=$Premiere`" set Premiere="$K_sepP""$Premiere_1" unset Premiere_1 # Pour la modification du 20091105190437 : 'v $Falias_GetXTmp 20091105172200'... # $xci/acces$X A=$nomTI$Premiere$ROUGE R=$imageR$ROUGE \ $formatI $xci/acces$X A=$nomTI$Premiere$VERTE R=$imageR$VERTE \ $formatI $xci/acces$X A=$nomTI$Premiere$BLEUE R=$imageR$BLEUE \ $formatI FileTmpE nomT1 FileTmpE nomT2 FileTmpE nomT3 FileTmpE nomT4 FileTmpE nomTX FileTmpE nomTY FileTmpE nomTZ FileTmpE nomTR FileTmpE nomTV FileTmpE nomTB FileTmpE nomTr FileTmpE nomTI # Nettoyage a posteriori... # else EROR "Le fichier '$PointA' des coordonnees du point a visualiser n'existe pas." endif