Macro LabelSeg

Pour proposer des idées, ou simplement discuter

Macro LabelSeg

Messagepar Joffrey » 31 Août 2009 19:18

Re,
Je trouve qu'il manque une option dans la macro LabelSeg :
J'aurais bien rajouté une option labelangle qui vaut RealArg(B-A)*rad par défaut mais avec possibilité de la modifié à la main.
J'ai essayé de modifier :
Code: Tout sélectionner
if labelangle=Nil then LabelAngle:=RealArg(B-A)*rad
                      else LabelAngle:=labelangle*rad fi,

Mais ça ne marche pas... :oops:

Du coup j'ai modifier la précédente mais c'est pas top, j'ai deux macros qui font la même chose :
Code: Tout sélectionner
[
{LabelSegSansAngle = LabelSegSansAngle(A,B, "texte" <,[options]>)
   options
         labelpos = center ou top ou bottom ( top par defaut)
         labelsep = distance (cm) pour top ou bottom (0.25 par defaut)
   }
   labelpos:=top, labelsep:=0.25, center:=0,
    SaveAttr(), $aux:=%4,
    $A:=%1, $B:=%2, $C:=(A+B)/2, Ligne([A,B],0),
    LabelAngle:=0,
    if labelpos=center then
       FillStyle:=full, LineStyle:=noline, LabelStyle:=framed,
       Label(C,%3),
    elif labelpos=top then
         $v:=ScrCoordV(i*RealCoordV(B-A)),
         Label(C+labelsep*v/Abs(v),%3)
    elif labelpos=bottom then
         $v:=ScrCoordV(i*RealCoordV(B-A)),
         Label(C-labelsep*v/Abs(v),%3)
    fi,
    RestoreAttr()
]
L'homme en noir fuyait à travers le désert, et le Pistoléro le suivait ...
Joffrey
 
Messages: 287
Inscription: 16 Juil 2009 17:05
Localisation: Vichy

Re: Macro LabelSeg

Messagepar P.Fradin » 31 Août 2009 19:50

Il y a déjà une variable qui existe et qui s'appelle rotation, autant l'utiliser, j'ai donc modifié la macro LabelSeg (dans le fichier TeXgraph.mac) ainsi:

Code: Tout sélectionner
    LabelSeg = {LabelSeg(A,B, "texte" <,[options]>)
   options
         labelpos = center ou top ou bottom ( top par defaut)
         labelsep = distance (cm) pour top ou bottom (0.25 par defaut)
         rotation = angle en degrés (par défaut le label est parallèle à la droite (AB) )
   }
   [labelpos:=top, labelsep:=0.25, center:=0, rotation:=Nil,
    SaveAttr(), $aux:=%4,
    $A:=%1, $B:=%2, $C:=(A+B)/2, Ligne([A,B],0),
    if rotation=Nil then LabelAngle:=RealArg(B-A)*rad else LabelAngle:=rotation fi,
    if labelpos=center then
       FillStyle:=full, LineStyle:=noline, LabelStyle:=framed,
       Label(C,%3),
    elif labelpos=top then
         $v:=ScrCoordV(i*RealCoordV(B-A)),
         Label(C+labelsep*v/Abs(v),%3)
    elif labelpos=bottom then
         $v:=ScrCoordV(i*RealCoordV(B-A)),
         Label(C-labelsep*v/Abs(v),%3)
    fi,
    RestoreAttr()
   ];


Exemple dans un élément Utilisateur:

Code: Tout sélectionner
[
LabelSeg(-3,3*i,"essai 1"),
LabelSeg(0,3+3*i,"essai 2", [rotation:=0, LabelStyle:=right])
]


LabelSeg.png
LabelSeg.png (4.59 Kio) Consulté 5466 fois
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1887
Inscription: 29 Oct 2008 15:04

Re: Macro LabelSeg

Messagepar Joffrey » 31 Août 2009 21:18

Et ben c'est parfait!!!!
Merci
L'homme en noir fuyait à travers le désert, et le Pistoléro le suivait ...
Joffrey
 
Messages: 287
Inscription: 16 Juil 2009 17:05
Localisation: Vichy


Revenir vers Propositions - Discussions

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 16 invités

cron