Программа  12    c. 107                    Кирсанов М.Н, 
Графы в Maple
 

 Изображение орграфа

>    restart;with(plots):with(plottools): #Maple 11,... необходимо подгружать пакеты ( для Maple 8 - не надо)

>    Draw1:=proc(S,G)

>     local q,k,n,n1,m,m1,i,j,t,v,x,y,x1,x2,y1,y2,c,e,E;

>     n1:=nops(S);

>     n:=nops(vertices(G)):

>     E:=ends(G):

>     m1:=nops(E):   # Число дуг

>     q:=.5, 2, .05, color=green: # Стиль стрелок

>     for i to n1 do m:=nops(S[i]);

>      for j to m do k:=S[i][j]:

>       x[k]:=100/n1*i; y[k]:=100/(m+1)*j;      # Координаты вершин

>       c[k]:=disk([x[k],y[k]],0.5,color=blue): # Вершины

>       t[k]:=textplot([x[k]+4,y[k]+1,r[i][j]], # Подписи вершин

>        align={ABOVE,RIGHT},font=[TIMES,ITALIC,16]);

>      od;

>     od;

>    for i to m1 do

>     x1:=x[E[i][1]]: y1:=y[E[i][1]]:

>     x2:=x[E[i][2]]: y2:=y[E[i][2]]:

>     v[i]:=arrow([x1,y1],[x2,y2],q):             # Дуги

>     e[i]:=textplot([(x1+x2)/2,(y1+y2)/2+1,e||i],# Подписи дуг

>        align={ABOVE,RIGHT},font=[HELVETICA,OBLIQUE,12],color=red);

>    od;

>    display(seq(c[i],i=1..n),seq(t[i],i=1..n),seq(e[i],i=1..m1),

>    seq(v[i],i=1..m1),axes=none,scaling=constrained);

>    end proc:

>    save Draw1, "C:\\draw.m";

>