// cn:Tcanvas; - канва для рисоваия
// cx,cy координаты центра окружности
// a - угол поворота
//R1,r2 - оси по х и по у
// n - кол-во вершин фигуры
procedure GetFigur(cn:Tcanvas;cx,cy:integer;a:integer;r1,r2:integer;n:integer);
var x,y,i:integer;
b:real;
l:real;
x1,y1:integer;
begin
b:=360/(n); // вычисляем угол
for i:=0 to n do begin
l:=i*b+a; // расчитываем угол поворота оси
x:=round(cx+r1*cos(l*pi/180)); // расчет точки по Х
y:=round(cy+r2*sin(l*pi/180)); // расчет точки по У
if i=0 then begin
cn.MoveTo(x,y); // переносим карандашь
x1:=x;
y1:=y;
end else
if i=n then begin
cn.LineTo(x,y); // рисуем линию
cn.LineTo(x1,y1); // рисуем линию 2
end else
cn.LineTo(x,y); // рисуем линию
end;
end;
procedure GetFigura1(cx,cy,r1,a:integer); // CX,cY - точка внутри фигуры R1 - радиус A-угол поворота
begin
GetFigur(form1.Canvas,cx,cy,a,r1,r1,4); // рисуем 4-х угольник
end;
procedure GetFigura2(cx,cy,r1,a:integer);
begin
GetFigur(form1.Canvas,cx,cy,a,r1,r1,6); // рисуем 6-угольник
end;
procedure GetFigura3(cx,cy,r1,a:integer);
begin
GetFigur(form1.Canvas,cx,cy,a,r1,r1,3); // рисуем 3-угольник
end;