Рисуем правильный многоугольник (PascalABC.NET)
- function getPolygon(corners, radius, x, y: integer; difangle: real): array of GraphABC.Point;
- var
- angle: real;
- begin
- SetLength(Result, corners);
- angle := 360 / corners;
- for var i := 0 to N - 1 do
- Result[i] := new GraphABC.Point(
- Round(x + radius * cos(DegToRad(i * angle + difangle))),
- Round(y + radius * sin(DegToRad(i * angle + difangle)))
- );
- end;
corners — количество углов;
radius — радиус описанной окружности;
x, y — координаты центра фигуры;
difangle — угол отклонения
Пример использования:
- uses GraphABC;
- Pen.Color := Color.Red;
- GraphABC.Polygon(getPolygon(6, 100, Window.Width div 2, Window.Height div 2, 0));
Демонстрационная программа: http://d.pr/f/q4Ml
И её исходники: http://dumpz.org/305199/
И её скриншот: http://joxi.ru/AoeDjQo