Modèle arbres.mod

N'oubliez pas de consulter les sujets avant de poser votre question, merci.

Modèle arbres.mod

Messagepar Joffrey » 05 Oct 2018 13:53

Bonjour Patrick,

Concernant le modèle arbres.mod, pour un arbre de probabilités, je sais qu'il est possible d'écrire les valeurs des probabilités horizontalement :
Code: Tout sélectionner
labeloriente=0

Je n'ai pas trouvé dans la doc le moyen régler la position du label par rapport à la branche.
Par exemple, mettre $ p(\overline{C}) $ en dessous de la branche. Voici mon arbre :
Code: Tout sélectionner
TeXgraph#
{version 1.98}
Cmd
   Window(-0.25+0.25*i, 4.25-3.25*i, 1+i);
   Margin(0, 0, 0, 0);
   Border(0);
   [OriginalCoord(1), IdMatrix()];
   [theta:=0.5236, phi:=1.0472, IdMatrix3D(), ModelView(ortho)];
   [GrayScale(0), ComptGraph:=0];

Var
    arbrever = 0.1;
    N0 = -1.5*i;
    arbre0 = [0,1,2];
    Ajuster = 1;
    Dir1 = 1;
    Dir2 = -i;
    Export = 0;
    Index = [1,1,1+i,1+i,1+2*i,1+2*i];
    treelabelsep = 0.1;
    treesep = 0.75;
    nodeep = 0.25;
    treeheight = 2;
    niveau = 2;
    linetype = 0;
    armpos = 0.2;
    treelabelpos = 0.5;
    labeloriente = 0;
    treeposition = [2.5,3.5,4];
    MouseVer = 0.1;
    N1 = 2-0.5*i;
    N2 = 2-2.5*i;
    arbre1 = [1,3,4];
    N3 = 4;
    N4 = 4-i;
    arbre2 = [2,5,6];
    N5 = 4-2*i;
    N6 = 4-3*i;

Include
   "Mouse.mac";
   "Arbres.mac";

Mac
    drawAline = [ { drawAline(affixe depart, vecteur direction, indice1, indice2): on relie le node indice1 (son affixe est %1) au node indice2 (la direction est %2), les attributs sont ceux de l'élément graphique arbre}
    $dep:=%1, $dir:=%2,
    $u:=Re(dir*bar(Dir1))*Dir1, {composante du vecteur direction suivant Dir1}
    $v:=Re(dir*bar(Dir2))*Dir2, {composante du vecteur direction suivant Dir2}
    if linetype=0 {segment de droite}
      then Ligne([dep,dep+dir],0)
    elif linetype=1 {segment à un coude}
      then u:=u*armpos, Ligne( [dep, dep+u+v, dep+dir],0)
    elif linetype=2 {segment à 2 coudes}
      then u:=u*armpos, Ligne( [dep, dep+u, dep+dir-u, dep+dir],0)
    elif linetype=3 {courbe de bézier}
      then Bezier(dep, dep+u/2, dep+u/2+v, dep+dir)
    elif linetype=4 {tube}
      then oldwidth:=Width,  Width:=Width*3,
           Ligne([dep,dep+dir],0), $oldcolor:=Color,
           Color:=FillColor, Width:=oldwidth,
           Ligne([dep,dep+dir],0), Color:=oldcolor
    fi
   ];
    drawAnode = [{drawAnode(indice): on dessine le node indice %1, les attributs sont ceux de l'élément graphique styleNodes}
   
   {Eval( ["Cercle(N",%1, ",", nodeep, ")" ]),}
   Eval( ["Label( N", %1, ", \node", %1, ")" ])
   ];
    drawAlabel = [ $dep:=%1, $dir:=%2,
    if (linetype=0) Or (linetype=4) then  $v:=dir {baton ou tube}
    elif (linetype=1) then  {segment à 1 coude}
     $v:=Re(dir*bar(Dir1))*Dir1, $w:=Re(dir*bar(Dir2))*Dir2,
     dep:=dep+v*armpos+w, v:=v*(1-armpos)
    elif (linetype=2) then  {segment à 2 coudes}
     $v:=Re(dir*bar(Dir1))*Dir1,
     dep:=dep+dir-v*armpos, v:=v*armpos
     elif linetype=3 then {bézier}
       $v:=Re(dir*bar(Dir1))*Dir1/2, $w:=Re(dir*bar(Dir2))*Dir2,
       dep:=dep+v/2, v:= v+w
     fi,
      $u:=ortho(v), $angle:= arg(v)*180/pi,
    if labeloriente then
      if treelabelpos=0.5 then $pos:=0 {centré}
       elif treelabelpos<0.5 then pos:=left
      else pos:=right
     fi,
     if Re(v)>=0
        then LabelAngle:= angle else LabelAngle:= 180+angle,u:=-u
     fi,
     if ((angle>=0) And (Im(Dir1)=0)) Or ((angle<0)  And (Re(Dir1)=0))
       then  LabelStyle:=bottom+pos, Label(dep+v*treelabelpos+treelabelsep*u,%3)
       else  LabelStyle:=top+pos, Label(dep+v*treelabelpos-treelabelsep*u,%3)
     fi
     else {labels horizontaux}
        if Im(v)<0 then pos:=left elif Im(v)>0 then pos:=right else pos:=0 fi,
        if Re(v)<0 then LabelStyle:=top+pos
        elif Re(v)>0 then LabelStyle:=bottom+pos
        else LabelStyle:=pos
        fi,
        Label(dep+v*treelabelpos+treelabelsep*u,%3)
     fi
   ];
    node1 = "$C$";
    lab1 = "$0,8$";
    node2 = "$\overline{C}$";
    lab2 = "$0,2$";
    node3 = "$N$";
    lab3 = "$0,4$";
    node4 = "$\overline{N}$";
    lab4 = "$0,6$";
    node5 = "$N$";
    lab5 = "$0,8$";
    node6 = "$\overline{N}$";
    lab6 = "$0,2$";
    Init = [C1:=0, C2:=0, C3:=0, C4:=0, C5:=0, C6:=0, C7:=0, C8:=0, C9:=0, C10:=0, C11:=0, C12:=0,
    C13:=0, C14:=0, C15:=0, C16:=0, NbCtrlDot:=0, CtrlDot:=ctrldot(), LaListe:=laliste()
   , DotState:=dotstate(), ShowRef:=0,  ShowLabel:=0, SLabelEnCours:=0, flechage:=fleches()
   , ReCalc()   ];

Cmd   [IsVisible:=0,tMin:=-5,tMax:=5,DotScale:=1+i];
Graph repere = [LineStyle:=0, LabelSize:=footnotesize,
   FillStyle:=none, Width:=0, Color:=Rgb(0.75,0.75,0.75),
   Grille(0,(1+i)/GridNbDiv), Color:=0, Axes(Xmin+i*Ymin,1+i)];
Cmd   [IsVisible:=1,FillColor:=1];
Graph etat = Nil;
Cmd   [LineStyle:=-1,FillStyle:=1,FillColor:=16777215,tMin:=-2.75,tMax:=2.75,LabelStyle:=16];
Graph styleNodes = 1/0;
Cmd   [Width:=8,LineStyle:=0,FillStyle:=0,FillColor:=8366847,tMin:=-5,tMax:=5,DotStyle:=1,LabelStyle:=0,LabelSize:=2];
Graph arbre = Dessiner();
Cmd   [FillColor:=16777215];
Graph indices = [
    if Export=0 then
       Color:=red,
       drawIndices(0),
       Label(N0-0.25*i/Yscale, "0")
    fi
   ];


Merci pour ta réponse.

Joffrey
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: Modèle arbres.mod

Messagepar P.Fradin » 05 Oct 2018 21:30

Salut Joffrey,

Je découvre ton message (bizarrement je n'ai pas reçu de notification). Il y a longtemps que je n'ai pas mis le nez dans ce modèle.
Pour l'instant je n'ai pas mieux que de modifier la macro drawAlabel comme ceci (il faut remettre labeloriente à 1 mais on empêche l'affectation de l'angle dans LabelAngle) :
Code: Tout sélectionner
[ $dep:=%1, $dir:=%2,
        if (linetype=0) Or (linetype=4) then  $v:=dir {baton ou tube}
        elif (linetype=1) then  {segment à 1 coude}
         $v:=Re(dir*bar(Dir1))*Dir1, $w:=Re(dir*bar(Dir2))*Dir2,
         dep:=dep+v*armpos+w, v:=v*(1-armpos)
        elif (linetype=2) then  {segment à 2 coudes}
         $v:=Re(dir*bar(Dir1))*Dir1,
         dep:=dep+dir-v*armpos, v:=v*armpos
         elif linetype=3 then {bézier}
           $v:=Re(dir*bar(Dir1))*Dir1/2, $w:=Re(dir*bar(Dir2))*Dir2,
           dep:=dep+v/2, v:= v+w
         fi,
          $u:=ortho(v), $angle:= arg(v)*180/pi,
        if labeloriente then
          if treelabelpos=0.5 then $pos:=0 {centré}
           elif treelabelpos<0.5 then pos:=left
          else pos:=right
         fi,
         if Re(v)>=0
            then {LabelAngle:=angle}
            else {LabelAngle:= 180+angle fi,} u:=-u
         fi,
         if ((angle>=0) And (Im(Dir1)=0)) Or ((angle<0)  And (Re(Dir1)=0))
           then  LabelStyle:=bottom+pos, Label(dep+v*treelabelpos+treelabelsep*u,%3)
           else  LabelStyle:=top+pos, Label(dep+v*treelabelpos-treelabelsep*u,%3)
         fi
         else {labels horizontaux}
            if Im(v)<0 then pos:=left elif Im(v)>0 then pos:=right else pos:=0 fi,
            if Re(v)<0 then LabelStyle:=top+pos
            elif Re(v)>0 then LabelStyle:=bottom+pos
            else LabelStyle:=pos+bottom
            fi,
            Label(dep+v*treelabelpos+treelabelsep*u,%3)
         fi
       ]
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1887
Inscription: 29 Oct 2008 15:04

Re: Modèle arbres.mod

Messagepar Joffrey » 06 Oct 2018 21:11

Salut et merci pour ta réponse.

Je n'ai, moi aussi, pas reçu de notification.
Je trouvais donc que ta réactivité légendaire en avait pris un coup (je plaisante bien sûr ... :mrgreen: :mrgreen: :mrgreen:)

J'essaie et je te tiens au courant

Joffrey
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: Modèle arbres.mod

Messagepar Joffrey » 08 Oct 2018 20:54

Bonsoir Patrick, bonsoir à tous (on ne sait jamais si des fois il y avait du monde ...)

Ça fonctionne, merci.

Joffrey
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: Modèle arbres.mod

Messagepar Alphonse Capriani » 12 Oct 2018 10:16

Bonsoir Joffrey :D
Ya Ba Da Ba Dooo!!!
Avatar de l’utilisateur
Alphonse Capriani
 
Messages: 576
Inscription: 18 Juil 2009 19:10
Localisation: East Harlem - NY


Revenir vers Questions - Réponses

Qui est en ligne ?

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

cron