procedure Draw_Graf;
var
i,j:integer; //для цикла
cntrx,cntry:integer; //центр формы
R,rm:integer; //радиус вспомогательной окружности и радиус вершины
x,y:integer; //координаты вершины
l,b:integer; // левый нижний угол области вывода графа
w,h:integer; // ширина и высота области вывода
px,py: integer; //координаты вершин на поверхности формы
begin
Draw_Form.Canvas.Rectangle(0,0,Draw_Form.ClientWidth,Draw_Form.ClientHeight);
cntrx := round(Draw_Form.ClientWidth/2);
cntry := round(Draw_Form.ClientHeight/2);
R := round(cntrx/1.5);
rm := 10;
Draw_Form.Canvas.brush.color := clWhite;
Draw_Form.canvas. pen. color := clWhite;
Draw_Form.canvas. pen. width := 1;
Draw_Form.Canvas.Ellipse(cntrx-R,cntry-R,cntrx+R,cntry+R);
Draw_Form.canvas. pen. color := clBlack;
for i:=1 to n do
for j:=1 to n do
begin
if j>i then
begin
if a[i,j]=1 then
begin
Draw_Form.Canvas.MoveTo(x,y);
px:= round(cntrx+R*cos(j*2*pi/n));
py:= round(cntry+R*sin(j*2*pi/n));
Draw_Form.Canvas.LineTo(px,py);
end;
end;
x := round(cntrx+R*cos(i*2*pi/n));
y := round(cntry+R*sin(i*2*pi/n));
Draw_Form.Canvas.Ellipse(x-rm,y-rm,x+rm,y+rm);
Draw_Form.Canvas.TextOut(x-4,y-6,inttostr(i));
end;
end;
end;
Нарисовать взвешенный граф |