####################################################################################################################################### # # # P R I N C I P E B I D I M E N S I O N N E L D U ' GPS ' : # # # # # # Author of '$xiirv/.GPS2.11.1.$U' : # # # # Jean-Francois Colonna (LACTAMME, 20160309175336). # # # ####################################################################################################################################### $Z SETParam _____TracerTriangle_ABC $EXIST $Z # Parametre introduit le 20180515095257... # $Z SETParam _____TracerCercles__ABC $EXIST $Z # Parametre introduit le 20180515094254... # $Z SETParam _____TracerSegments_ABC $EXIST $Z # Parametre introduit le 20180515094254... # $Z setParam _____Rouge_T $GRIS_8 $Z setParam _____Verte_T $GRIS_8 $Z setParam _____Bleue_T $GRIS_8 $Z setParam _____Rayon_T 0.010 $Z setParam _____Grossissement 3.0 $Z setParam _____DistanceMini 0.002 $Z setParam _____XA -0.3 $Z setParam _____YA +0.8 $Z setParam _____Rouge_PA $GRIS_8 $Z setParam _____Verte_PA $GRIS_0 $Z setParam _____Bleue_PA $GRIS_0 $Z setParam _____NCercle_PA 300 $Z setParam _____Rayon_PA 0.010 $Z setParam _____XB -0.1 $Z setParam _____YB -0.3 $Z setParam _____Rouge_PB $GRIS_0 $Z setParam _____Verte_PB $GRIS_8 $Z setParam _____Bleue_PB $GRIS_0 $Z setParam _____NCercle_PB 300 $Z setParam _____Rayon_PB 0.010 $Z setParam _____XC +0.6 $Z setParam _____YC +0.1 $Z setParam _____Rouge_PC $GRIS_0 $Z setParam _____Verte_PC $GRIS_6 $Z setParam _____Bleue_PC $GRIS_8 $Z setParam _____NCercle_PC 300 $Z setParam _____Rayon_PC 0.010 $Z setParam _____XP 0.9 $Z setParam _____YP 0.9 $Z setParam _____Rouge_P $GRIS_8 $Z setParam _____Verte_P $GRIS_8 $Z setParam _____Bleue_P $GRIS_8 $Z setParam _____Rayon_P 0.010 $Z setParam _____Zoom 0.45 $Z SETParam _____G_K 0.020 $Z set Distance_PA=`calcul sqrt(pow($_____XA-$_____XP,2)+pow($_____YA-$_____YP,2))` $Z set Distance_PB=`calcul sqrt(pow($_____XB-$_____XP,2)+pow($_____YB-$_____YP,2))` $Z set Distance_PC=`calcul sqrt(pow($_____XC-$_____XP,2)+pow($_____YC-$_____YP,2))` $Z set CoOrDoNnEe_Z=0.5 $Z set AXYZ_BXYZ="AXYZ=1 BXYZ=0" $Z set LiM="@" $Z execRVB $xci/init$X \ $Z niveau=$NOIR \ $Z R=$_____ImagesR%s \ $Z $formatI $Z # Introduit le 20180515095257 au cas ou... # $Z if ($_____TracerTriangle_ABC == $EXIST) then $Z # Test introduit le 20180515095257... # $Z FileTmpB Ftriangle $Z echo "$_____XA$LiM$_____XB$LiM$_____XC$LiM$_____XA" | \ $Z $R "$LiM" "$K_NL" \ $Z > $Ftriangle$COORD_X $Z echo "$_____YA$LiM$_____YB$LiM$_____YC$LiM$_____YA" | \ $Z $R "$LiM" "$K_NL" \ $Z > $Ftriangle$COORD_Y $Z set NPoInTsX=`$CA $Ftriangle$COORD_X | $WCl` $Z set NPoInTsY=`$CA $Ftriangle$COORD_Y | $WCl` $Z set NPoInTs=`$xcg/MIN2.01$X x=$NPoInTsX y=$NPoInTsY` $Z if ($_____TracerSegments_ABC == $EXIST) then $Z set GrOsSiSsEmEnT=1 $Z else $Z set GrOsSiSsEmEnT=$_____Grossissement $Z endif $Z $xrv/particule.10$X \ $Z np=1 \ $Z iterations=$NPoInTs \ $Z $AXYZ_BXYZ \ $Z LISTE_X=$Ftriangle$COORD_X \ $Z LISTE_Y=$Ftriangle$COORD_Y \ $Z LISTE_Z=$CoOrDoNnEe_Z \ $Z grossissement=$GrOsSiSsEmEnT \ $Z LISTE_RAYON=$_____Rayon_T \ $Z LISTE_ROUGE=$_____Rouge_T \ $Z LISTE_VERTE=$_____Verte_T \ $Z LISTE_BLEUE=$_____Bleue_T \ $Z ZOOM=$_____Zoom \ $Z isoles=FAUX chainer=VRAI \ $Z ajuster_points=VRAI \ $Z equidistance=VRAI \ $Z distance_minimale=$_____DistanceMini \ $Z Lz=100 \ $Z editer_extrema_hors=FAUX \ $Z chiffres=0 \ $Z R=$_____ImagesR \ $Z $formatI $Z # Trace du triangle ABC. # $Z if ($_____TracerSegments_ABC == $EXIST) then $Z else $Z $xrv/particule.10$X \ $Z np=1 \ $Z iterations=2 \ $Z $AXYZ_BXYZ \ $Z LISTE_X=$_____XP \ $Z LISTE_Y=$_____YP \ $Z LISTE_Z=$CoOrDoNnEe_Z \ $Z grossissement=$_____Grossissement \ $Z LISTE_RAYON=$_____Rayon_P \ $Z LISTE_ROUGE=$_____Rouge_P \ $Z LISTE_VERTE=$_____Verte_P \ $Z LISTE_BLEUE=$_____Bleue_P \ $Z ZOOM=$_____Zoom \ $Z isoles=FAUX chainer=VRAI \ $Z Lz=100 \ $Z editer_extrema_hors=FAUX \ $Z chiffres=0 \ $Z fond=VRAI F=$_____ImagesR \ $Z R=$_____ImagesR \ $Z $formatI $Z # Trace du point P. On notera qu'en fait le point P est visualise sous la forme d'un # $Z # segment (voir "iterations=2" et "isoles=FAUX chainer=VRAI" de facon a etre sur que # $Z # le grossissement de son rayon soit le meme que celui des points A, B et C. En effet, # $Z # "Ar=$_____Grossissement" et "isoles=VRAI chainer=FAUX" n'ont pas donne cela... # $Z # # $Z # Le 20180515134240, je comprends l'origine de ce probleme : par defaut "Ar=2" (et non pas # $Z # "Ar=1"). Ainsi, c'est : # $Z # # $Z # Ar=`calcul 2*$_____Grossissement` # $Z # # $Z # qui aurait ete necessaire... # $Z endif $Z FileTmpE Ftriangle $Z else $Z endif $Z if ($_____TracerCercles__ABC == $EXIST) then $Z # Test introduit le 20180515094254... # $Z FileTmpB FPoints $Z FileTmpB Fcercle_PA $Z FileTmpB Fcercle_PB $Z FileTmpB Fcercle_PC $Z set PaRaMeTrEs1="premiere=1 lineaire=VRAI gamma=0 tD=0" $Z set PaRaMeTrEs2="premiere=1 lineaire=VRAI" $Z set NCercle_PA=`calculI $dpi*$Distance_PA*$_____NCercle_PA` $Z $xci/valeurs_trig$X \ $Z $PaRaMeTrEs1 \ $Z derniere=$NCercle_PA \ $Z rD=$Distance_PA rA=$Distance_PA \ $Z tD=0 tA=$dpi \ $Z translation=$_____XA \ $Z alpha=1 beta=0 \ $Z > $Fcercle_PA$COORD_X $Z $xci/valeurs_trig$X \ $Z $PaRaMeTrEs1 \ $Z derniere=$NCercle_PA \ $Z rD=$Distance_PA rA=$Distance_PA \ $Z tD=0 tA=$dpi \ $Z translation=$_____YA \ $Z alpha=0 beta=1 \ $Z > $Fcercle_PA$COORD_Y $Z $xci/valeurs_inte$X \ $Z $PaRaMeTrEs2 \ $Z derniere=$NCercle_PA \ $Z vD=$_____Rayon_PA vA=$_____Rayon_PA \ $Z > $Fcercle_PA$RAYON $Z $xci/valeurs_inte$X \ $Z $PaRaMeTrEs2 \ $Z derniere=$NCercle_PA \ $Z vD=$_____Rouge_PA vA=$_____Rouge_PA \ $Z > $Fcercle_PA$ROUGE $Z $xci/valeurs_inte$X \ $Z $PaRaMeTrEs2 \ $Z derniere=$NCercle_PA \ $Z vD=$_____Verte_PA vA=$_____Verte_PA \ $Z > $Fcercle_PA$VERTE $Z $xci/valeurs_inte$X \ $Z $PaRaMeTrEs2 \ $Z derniere=$NCercle_PA \ $Z vD=$_____Bleue_PA vA=$_____Bleue_PA \ $Z > $Fcercle_PA$BLEUE $Z # Definition du cercle PA. # $Z set NCercle_PB=`calculI $dpi*$Distance_PB*$_____NCercle_PB` $Z $xci/valeurs_trig$X \ $Z $PaRaMeTrEs1 \ $Z derniere=$NCercle_PB \ $Z rD=$Distance_PB rA=$Distance_PB \ $Z tD=0 tA=$dpi \ $Z translation=$_____XB \ $Z alpha=1 beta=0 \ $Z > $Fcercle_PB$COORD_X $Z $xci/valeurs_trig$X \ $Z $PaRaMeTrEs1 \ $Z derniere=$NCercle_PB \ $Z rD=$Distance_PB rA=$Distance_PB \ $Z tD=0 tA=$dpi \ $Z translation=$_____YB \ $Z alpha=0 beta=1 \ $Z > $Fcercle_PB$COORD_Y $Z $xci/valeurs_inte$X \ $Z $PaRaMeTrEs2 \ $Z derniere=$NCercle_PB \ $Z vD=$_____Rayon_PB vA=$_____Rayon_PB \ $Z > $Fcercle_PB$RAYON $Z $xci/valeurs_inte$X \ $Z $PaRaMeTrEs2 \ $Z derniere=$NCercle_PB \ $Z vD=$_____Rouge_PB vA=$_____Rouge_PB \ $Z > $Fcercle_PB$ROUGE $Z $xci/valeurs_inte$X \ $Z $PaRaMeTrEs2 \ $Z derniere=$NCercle_PB \ $Z vD=$_____Verte_PB vA=$_____Verte_PB \ $Z > $Fcercle_PB$VERTE $Z $xci/valeurs_inte$X \ $Z $PaRaMeTrEs2 \ $Z derniere=$NCercle_PB \ $Z vD=$_____Bleue_PB vA=$_____Bleue_PB \ $Z > $Fcercle_PB$BLEUE $Z # Definition du cercle PB. # $Z set NCercle_PC=`calculI $dpi*$Distance_PC*$_____NCercle_PC` $Z $xci/valeurs_trig$X \ $Z $PaRaMeTrEs1 \ $Z derniere=$NCercle_PC \ $Z rD=$Distance_PC rA=$Distance_PC \ $Z tD=0 tA=$dpi \ $Z translation=$_____XC \ $Z alpha=1 beta=0 \ $Z > $Fcercle_PC$COORD_X $Z $xci/valeurs_trig$X \ $Z $PaRaMeTrEs1 \ $Z derniere=$NCercle_PC \ $Z rD=$Distance_PC rA=$Distance_PC \ $Z tD=0 tA=$dpi \ $Z translation=$_____YC \ $Z alpha=0 beta=1 \ $Z > $Fcercle_PC$COORD_Y $Z $xci/valeurs_inte$X \ $Z $PaRaMeTrEs2 \ $Z derniere=$NCercle_PC \ $Z vD=$_____Rayon_PC vA=$_____Rayon_PC \ $Z > $Fcercle_PC$RAYON $Z $xci/valeurs_inte$X \ $Z $PaRaMeTrEs2 \ $Z derniere=$NCercle_PC \ $Z vD=$_____Rouge_PC vA=$_____Rouge_PC \ $Z > $Fcercle_PC$ROUGE $Z $xci/valeurs_inte$X \ $Z $PaRaMeTrEs2 \ $Z derniere=$NCercle_PC \ $Z vD=$_____Verte_PC vA=$_____Verte_PC \ $Z > $Fcercle_PC$VERTE $Z $xci/valeurs_inte$X \ $Z $PaRaMeTrEs2 \ $Z derniere=$NCercle_PC \ $Z vD=$_____Bleue_PC vA=$_____Bleue_PC \ $Z > $Fcercle_PC$BLEUE $Z # Definition du cercle PC. # $Z $CA \ $Z $Fcercle_PA$COORD_X \ $Z $Fcercle_PB$COORD_X \ $Z $Fcercle_PC$COORD_X \ $Z > $FPoints$COORD_X $Z $CA \ $Z $Fcercle_PA$COORD_Y \ $Z $Fcercle_PB$COORD_Y \ $Z $Fcercle_PC$COORD_Y \ $Z > $FPoints$COORD_Y $Z $CA \ $Z $Fcercle_PA$RAYON \ $Z $Fcercle_PB$RAYON \ $Z $Fcercle_PC$RAYON \ $Z > $FPoints$RAYON $Z $CA \ $Z $Fcercle_PA$ROUGE \ $Z $Fcercle_PB$ROUGE \ $Z $Fcercle_PC$ROUGE \ $Z > $FPoints$ROUGE $Z $CA \ $Z $Fcercle_PA$VERTE \ $Z $Fcercle_PB$VERTE \ $Z $Fcercle_PC$VERTE \ $Z > $FPoints$VERTE $Z $CA \ $Z $Fcercle_PA$BLEUE \ $Z $Fcercle_PB$BLEUE \ $Z $Fcercle_PC$BLEUE \ $Z > $FPoints$BLEUE $Z FileTmpE Fcercle_PA $Z FileTmpE Fcercle_PB $Z FileTmpE Fcercle_PC $Z set NPoInTsX=`$CA $FPoints$COORD_X | $WCl` $Z set NPoInTsY=`$CA $FPoints$COORD_Y | $WCl` $Z set NPoInTs=`$xcg/MIN2.01$X x=$NPoInTsX y=$NPoInTsY` $Z $xrv/particule.10$X \ $Z np=1 \ $Z iterations=$NPoInTs \ $Z $AXYZ_BXYZ \ $Z LISTE_X=$FPoints$COORD_X \ $Z LISTE_Y=$FPoints$COORD_Y \ $Z LISTE_Z=$CoOrDoNnEe_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 chiffres=0 \ $Z fond=VRAI F=$_____ImagesR \ $Z R=$_____ImagesR \ $Z $formatI $Z # Trace des trois cercles {PA,PB,PC}. # $Z FileTmpE FPoints $Z else $Z endif $Z if ($_____TracerSegments_ABC == $EXIST) then $Z # Test introduit le 20180515095257... # $Z FileTmpB Fdistances $Z echo "$_____XP$LiM$_____XA$LiM$_____XP$LiM$_____XB$LiM$_____XP$LiM$_____XC" | \ $Z $R "$LiM" "$K_NL" \ $Z > $Fdistances$COORD_X $Z echo "$_____YP$LiM$_____YA$LiM$_____YP$LiM$_____YB$LiM$_____YP$LiM$_____YC" | \ $Z $R "$LiM" "$K_NL" \ $Z > $Fdistances$COORD_Y $Z echo "$_____Rouge_P$LiM$_____Rouge_PA$LiM$_____Rouge_P$LiM$_____Rouge_PB$LiM$_____Rouge_P$LiM$_____Rouge_PC" | \ $Z $R "$LiM" "$K_NL" \ $Z > $Fdistances$ROUGE $Z echo "$_____Verte_P$LiM$_____Verte_PA$LiM$_____Verte_P$LiM$_____Verte_PB$LiM$_____Verte_P$LiM$_____Verte_PC" | \ $Z $R "$LiM" "$K_NL" \ $Z > $Fdistances$VERTE $Z echo "$_____Bleue_P$LiM$_____Bleue_PA$LiM$_____Bleue_P$LiM$_____Bleue_PB$LiM$_____Bleue_P$LiM$_____Bleue_PC" | \ $Z $R "$LiM" "$K_NL" \ $Z > $Fdistances$BLEUE $Z echo "$_____Rayon_P$LiM$_____Rayon_PA$LiM$_____Rayon_P$LiM$_____Rayon_PB$LiM$_____Rayon_P$LiM$_____Rayon_PC" | \ $Z $R "$LiM" "$K_NL" \ $Z > $Fdistances$RAYON $Z set NPoInTsX=`$CA $Fdistances$COORD_X | $WCl` $Z set NPoInTsY=`$CA $Fdistances$COORD_Y | $WCl` $Z set NPoInTs=`$xcg/MIN2.01$X x=$NPoInTsX y=$NPoInTsY` $Z $xrv/particule.10$X \ $Z np=1 \ $Z iterations=$NPoInTs \ $Z $AXYZ_BXYZ \ $Z LISTE_X=$Fdistances$COORD_X \ $Z LISTE_Y=$Fdistances$COORD_Y \ $Z LISTE_Z=$CoOrDoNnEe_Z \ $Z grossissement=$_____Grossissement \ $Z LISTE_RAYON=$Fdistances$RAYON \ $Z LISTE_ROUGE=$Fdistances$ROUGE \ $Z LISTE_VERTE=$Fdistances$VERTE \ $Z LISTE_BLEUE=$Fdistances$BLEUE \ $Z ZOOM=$_____Zoom \ $Z isoles=FAUX chainer=VRAI \ $Z ajuster_points=VRAI \ $Z equidistance=VRAI \ $Z distance_minimale=$_____DistanceMini \ $Z Lz=100 \ $Z editer_extrema_hors=FAUX \ $Z chiffres=0 \ $Z fond=VRAI F=$_____ImagesR \ $Z R=$_____ImagesR \ $Z $formatI $Z # Trace des trois segments {PA,PB,PC}. # $Z FileTmpE Fdistances $Z else $Z endif $Z set GRaYoN=0.010 $Z set Echelle_K=$_____G_K $Z set TrAnSlAtIoN_X=0.05 $Z set TrAnSlAtIoN_Y=0.05 $Z source $xrd/graph.01$vv$Y $Z G_Init $Z set Cursor_RAYON=$GRaYoN $Z set Echelle_K=$_____G_K $Z G_Zoom $_____Zoom $Z set FoNd="fond=VRAI F=$_____ImagesR" $Z set ZBuFfEr="$K_VIDE" $Z set GArGuMeNtS="$K_VIDE" $Z set GArGuMeNtS="$GArGuMeNtS" $Z set GArGuMeNtS="$GArGuMeNtS"" ajuster_points=VRAI" $Z set GArGuMeNtS="$GArGuMeNtS"" equidistance=VRAI" $Z set GArGuMeNtS="$GArGuMeNtS"" distance_minimale=0.02" $Z set GArGuMeNtS="$GArGuMeNtS"" store_sphere__anti_aliasing_____compatibilite_20060426=VRAI" $Z G_Cursor1 `calcul $_____XA+$TrAnSlAtIoN_X` `calcul $_____YA+$TrAnSlAtIoN_Y` $Origine_COORD_Z $Z G_Cursor2 $_____Rouge_PA $_____Verte_PA $_____Bleue_PA $Z eval `G_Message "A"` $Z # Marquage du point A. # $Z G_Cursor1 `calcul $_____XB+$TrAnSlAtIoN_X` `calcul $_____YB+$TrAnSlAtIoN_Y` $Origine_COORD_Z $Z G_Cursor2 $_____Rouge_PB $_____Verte_PB $_____Bleue_PB $Z eval `G_Message "B"` $Z # Marquage du point B. # $Z G_Cursor1 `calcul $_____XC+$TrAnSlAtIoN_X` `calcul $_____YC+$TrAnSlAtIoN_Y` $Origine_COORD_Z $Z G_Cursor2 $_____Rouge_PC $_____Verte_PC $_____Bleue_PC $Z eval `G_Message "C"` $Z # Marquage du point C. # $Z G_Cursor1 `calcul $_____XP+$TrAnSlAtIoN_X` `calcul $_____YP+$TrAnSlAtIoN_Y` $Origine_COORD_Z $Z G_Cursor2 $_____Rouge_P $_____Verte_P $_____Bleue_P $Z eval `G_Message "P"` $Z # Marquage du point P. # $Z G_Genere $_____ImagesR $FoNd $ZBuFfEr $AXYZ_BXYZ $GArGuMeNtS