#!/bin/csh ####################################################################################################################################### # # # D E F I N I T I O N D ' U N N O E U D N - T R E F L E : # # # # # # Utilisation : # # # # $xrs/NoeudTrefle.11$Z <IR> [<FR> [<MinT> [<MaxT> [<PasT> [<Dmin> [<PaA> [<PaB> [<Zo> [<RoX> [<RoY> [<RoZ> [<Ar>]]]]]]]]]]]]] # # # # # # Author of '$xrs/NoeudTrefle.11$Z' : # # # # Jean-Francois COLONNA (LACTAMME, 20220515122426). # # # ####################################################################################################################################### set ImageR=$1 set FileR=$2 set MinimumT=$3 set MaximumT=$4 set PasT=$5 set Dmin=$6 set ParamA=$7 set ParamB=$8 set Zoom=$9 set RotX=$10 set RotY=$11 set RotZ=$12 set Arguments=$13 # Parametre introduit le 20220623122753 pour, par exemple, redefinir "PARAMETRE_R1=" et/ou # # "PARAMETRE_R2="... # setArgum FileR "$K_VIDE" setArgum MinimumT 0.25 setArgum MaximumT 10.00 setArgum PasT 0.01 setArgum Dmin 0.006 setArgum ParamA +3 setArgum ParamB -2 setArgum Zoom 1 setArgum RotX 0 setArgum RotY 0 setArgum RotZ 0 setArgum Arguments "$K_VIDE" FilSTmpB FNoEuD_2 $xrs/NoeudTrefle.11$X \ np=1 \ Aduv=$ParamA Bduv=$ParamB \ mt=$MinimumT Mt=$MaximumT pas_t=$PasT \ ZOOM=$Zoom \ ROTATION_OX=$RotX ROTATION_OY=$RotY ROTATION_OZ=$RotZ \ lister_les_points=VRAI lister_les_points_apres=VRAI \ editer_extrema_hors=FAUX \ $Arguments \ R=$ImageR.2 chiffres=0 \ $formatI \ >> $FNoEuD_2 # Generation du noeud de trefle... # # # # Le 20220623122753 fut introduit "editer_extrema_hors=FAUX" rendu necessaire si, par # # exemple, on introduit : # # # # PARAMETRE_R1=1 # # PARAMETRE_R2=0.5 [=0.25 par defaut] # # # $CA $FNoEuD_2 | \ $AW ' { print $3 } ' | \ $SE -e "s/^.*=//" \ > $FNoEuD_2$COORD_X $CA $FNoEuD_2 | \ $AW ' { print $4 } ' | \ $SE -e "s/^.*=//" \ > $FNoEuD_2$COORD_Y $CA $FNoEuD_2 | \ $AW ' { print $5 } ' | \ $SE -e "s/^.*=//" \ > $FNoEuD_2$COORD_Z # Definition des coordonnees {X,Y,Z} d'une partie ("Troncon2") du noeud de trefle... # set MiNiMuM_X=`$CA $FNoEuD_2$COORD_X | $xrv/extrema.01$X ne=0 fichier== minimum_seul=VRAI` set MiNiMuM_Y=`$CA $FNoEuD_2$COORD_Y | $xrv/extrema.01$X ne=0 fichier== minimum_seul=VRAI` set MiNiMuM_Z=`$CA $FNoEuD_2$COORD_Z | $xrv/extrema.01$X ne=0 fichier== minimum_seul=VRAI` set MaXiMuM_X=`$CA $FNoEuD_2$COORD_X | $xrv/extrema.01$X ne=0 fichier== maximum_seul=VRAI` set MaXiMuM_Y=`$CA $FNoEuD_2$COORD_Y | $xrv/extrema.01$X ne=0 fichier== maximum_seul=VRAI` set MaXiMuM_Z=`$CA $FNoEuD_2$COORD_Z | $xrv/extrema.01$X ne=0 fichier== maximum_seul=VRAI` set OrIgInE___X=`$CA $FNoEuD_2$COORD_X | $HEA -2` set OrIgInE___Y=`$CA $FNoEuD_2$COORD_Y | $HEA -2` set OrIgInE___Z=`$CA $FNoEuD_2$COORD_Z | $HEA -2` set ExTrEmItE_X=`$CA $FNoEuD_2$COORD_X | $TAI -2` set ExTrEmItE_Y=`$CA $FNoEuD_2$COORD_Y | $TAI -2` set ExTrEmItE_Z=`$CA $FNoEuD_2$COORD_Z | $TAI -2` set CoIn1_____X=$MaXiMuM_X set CoIn1_____Y=$MiNiMuM_Y set CoIn1_____Z=$MiNiMuM_Z # Definition du point de depart ("Coin1") du noeud de trefle "ouvert"... # set CoIn2_____X=$MiNiMuM_X set CoIn2_____Y=$MiNiMuM_Y set CoIn2_____Z=$MiNiMuM_Z # Definition du point d'arrivee ("Coin2") du noeud de trefle "ouvert"... # FilSTmpB FNoEuD_11 echo "$CoIn1_____X""\n""$OrIgInE___X[1]" \ > $FNoEuD_11$COORD_X echo "$CoIn1_____Y""\n""$OrIgInE___Y[1]" \ > $FNoEuD_11$COORD_Y echo "$CoIn1_____Z""\n""$OrIgInE___Z[1]" \ > $FNoEuD_11$COORD_Z echo `calcul ($OrIgInE___X[1])-($CoIn1_____X)`"\n"`calcul ($OrIgInE___X[2])-($OrIgInE___X[1])` \ > $FNoEuD_11.d$COORD_X echo `calcul ($OrIgInE___Y[1])-($CoIn1_____Y)`"\n"`calcul ($OrIgInE___Y[2])-($OrIgInE___Y[1])` \ > $FNoEuD_11.d$COORD_Y echo `calcul ($OrIgInE___Z[1])-($CoIn1_____Z)`"\n"`calcul ($OrIgInE___Z[2])-($OrIgInE___Z[1])` \ > $FNoEuD_11.d$COORD_Z # Definition des coordonnees {X,Y,Z} d'une partie ("Troncon1") du noeud de trefle... # FilSTmpB FNoEuD_31 echo "$ExTrEmItE_X[2]""\n""$CoIn2_____X" \ > $FNoEuD_31$COORD_X echo "$ExTrEmItE_Y[2]""\n""$CoIn2_____Y" \ > $FNoEuD_31$COORD_Y echo "$ExTrEmItE_Z[2]""\n""$CoIn2_____Z" \ > $FNoEuD_31$COORD_Z echo `calcul ($ExTrEmItE_X[2])-($ExTrEmItE_X[1])`"\n"`calcul ($CoIn2_____X)-($ExTrEmItE_X[2])` \ > $FNoEuD_31.d$COORD_X echo `calcul ($ExTrEmItE_Y[2])-($ExTrEmItE_Y[1])`"\n"`calcul ($CoIn2_____Y)-($ExTrEmItE_Y[2])` \ > $FNoEuD_31.d$COORD_Y echo `calcul ($ExTrEmItE_Z[2])-($ExTrEmItE_Z[1])`"\n"`calcul ($CoIn2_____Z)-($ExTrEmItE_Z[2])` \ > $FNoEuD_31.d$COORD_Z # Definition des coordonnees {X,Y,Z} d'une partie ("Troncon3") du noeud de trefle... # set ArGuMeNtS="$K_VIDE" set ArGuMeNtS="$ArGuMeNtS"" coordonnees_dans_0_1=FAUX AXYZ=1 BXYZ=0" set ArGuMeNtS="$ArGuMeNtS"" AdXYZ=1" set ArGuMeNtS="$ArGuMeNtS"" isoles=FAUX chainer=VRAI" set ArGuMeNtS="$ArGuMeNtS"" ajuster_points=VRAI equidistance=VRAI dm=$Dmin" set ArGuMeNtS="$ArGuMeNtS"" ZOOM=1" set ArGuMeNtS="$ArGuMeNtS"" ROTATION_OX=0 ROTATION_OY=0 ROTATION_OZ=0" set ArGuMeNtS="$ArGuMeNtS"" lister_les_points=VRAI lister_les_points_apres=VRAI" set ArGuMeNtS="$ArGuMeNtS"" extrema_hors=FAUX" FilSTmpB FNoEuD_12 $xrv/particule.10$X \ np=1 iterations=2 \ LISTE_X=$FNoEuD_11$COORD_X LISTE_Y=$FNoEuD_11$COORD_Y LISTE_Z=$FNoEuD_11$COORD_Z \ cubique=VRAI \ LISTE_dX=$FNoEuD_11.d$COORD_X LISTE_dY=$FNoEuD_11.d$COORD_Y LISTE_dZ=$FNoEuD_11.d$COORD_Z \ $ArGuMeNtS \ R=$ImageR.1 chiffres=0 \ $formatI \ >> $FNoEuD_12 # Interpolation des coordonnees {X,Y,Z} d'une partie ("Troncon1") du noeud de trefle... # FilSTmpB FNoEuD_32 $xrv/particule.10$X \ np=1 iterations=2 \ LISTE_X=$FNoEuD_31$COORD_X LISTE_Y=$FNoEuD_31$COORD_Y LISTE_Z=$FNoEuD_31$COORD_Z \ cubique=VRAI \ LISTE_dX=$FNoEuD_31.d$COORD_X LISTE_dY=$FNoEuD_31.d$COORD_Y LISTE_dZ=$FNoEuD_31.d$COORD_Z \ $ArGuMeNtS \ R=$ImageR.3 chiffres=0 \ $formatI \ >> $FNoEuD_32 # Interpolation des coordonnees {X,Y,Z} d'une partie ("Troncon3") du noeud de trefle... # FilSTmpB FNoEuD $CA $FNoEuD_12 $FNoEuD_2 $FNoEuD_32 \ >> $FNoEuD # Concatenation des trois morceaux {"Troncon1","Troncon2","Troncon3"} du noeud de trefle # # "ouvert"... # $CA $FNoEuD | \ $AW ' { print $3 } ' | \ $SE -e "s/^.*=//" \ > $FNoEuD$COORD_X $CA $FNoEuD | \ $AW ' { print $4 } ' | \ $SE -e "s/^.*=//" \ > $FNoEuD$COORD_Y $CA $FNoEuD | \ $AW ' { print $5 } ' | \ $SE -e "s/^.*=//" \ > $FNoEuD$COORD_Z set NPoInTs_X=`$CA $FNoEuD$COORD_X | $WCl` set NPoInTs_Y=`$CA $FNoEuD$COORD_Y | $WCl` set NPoInTs_Z=`$CA $FNoEuD$COORD_Z | $WCl` set NPoInTs=`$xcg/MIN3.01$X x=$NPoInTs_X y=$NPoInTs_Y z=$NPoInTs_Z` $xci/valeurs_inte$X \ premiere=1 derniere=$NPoInTs \ vD=$NOIR_PLANCHER vA=$BLANC \ lineaire=VRAI \ entiers=VRAI \ > $FNoEuD$LUMIN set PaLeTtE=$xiP/cercle.66 $xrv/particule.10$X \ np=1 iterations=$NPoInTs \ LISTE_X=$FNoEuD$COORD_X LISTE_Y=$FNoEuD$COORD_Y LISTE_Z=$FNoEuD$COORD_Z \ isoles=VRAI chainer=FAUX \ LISTE_NIVEAU=$FNoEuD$LUMIN \ paletteA=$PaLeTtE \ ajuster_points=VRAI equidistance=VRAI \ ZOOM=1.0 \ extrema_hors=FAUX \ R=$ImageR chiffres=0 \ $formatI # Generation des coordonnees {X,Y,Z} du noeud de trefle "ouvert"... # if ("$FileR" != "$K_VIDE") then set NoRmAlIsE=$xrv/neutre$X set NoRmAlIsE=$xrv/normalise.01$X set PaSsEs=50000 set SaUt=20 # Parametres de lissage, operation destinee a ameliorer la continuite des tangentes au # # au niveau des raccords entre les trois troncons... # $CA $FNoEuD$COORD_X | \ $xrv/lissage.01$X ne=0 \ fichier== \ passes=$PaSsEs \ tete=$SaUt queue=$SaUt | \ $xrv/AXPB.01$X ne=0 \ fichier== \ a=-1 b=+1 | \ $NoRmAlIsE ne=0 \ fichier== \ > $FileR$COORD_Z # On notera la permutation des coordonnees 'X' et 'Z' afin d'assurer la compatibilite de # # comportement avec 'v $xiirv/PEAN.71', ainsi que l'inversions de la coordonnee 'Z'... # $CA $FNoEuD$COORD_Y | \ $xrv/lissage.01$X ne=0 \ fichier== \ passes=$PaSsEs \ tete=$SaUt queue=$SaUt | \ $NoRmAlIsE ne=0 \ fichier== \ > $FileR$COORD_Y $CA $FNoEuD$COORD_Z | \ $xrv/lissage.01$X ne=0 \ fichier== \ passes=$PaSsEs \ tete=$SaUt queue=$SaUt | \ $NoRmAlIsE ne=0 \ fichier== \ > $FileR$COORD_X # On notera la permutation des coordonnees 'X' et 'Z' afin d'assurer la compatibilite de # # comportement avec 'v $xiirv/PEAN.71', ainsi que l'inversions de la coordonnee 'Z'... # else endif FilSTmpE FNoEuD FilSTmpE FNoEuD_32 FilSTmpE FNoEuD_12 FilSTmpE FNoEuD_31 FilSTmpE FNoEuD_11 FilSTmpE FNoEuD_2