Программа 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"; |
> |