Рисуем правильный многоугольник (PascalABC.NET)

  1. function getPolygon(corners, radius, x, y: integer; difangle: real): array of GraphABC.Point;
  2. var
  3.   angle: real;
  4. begin
  5.   SetLength(Result, corners);
  6.   angle := 360 / corners;
  7.  
  8.   for var i := 0 to N - 1 do
  9.     Result[i] := new GraphABC.Point(
  10.       Round(x + radius * cos(DegToRad(i * angle + difangle))),
  11.       Round(y + radius * sin(DegToRad(i * angle + difangle)))
  12.   );
  13. end;
 
corners — количество углов;
radius — радиус описанной окружности;
x, y — координаты центра фигуры;
difangle — угол отклонения

Пример использования:
  1. uses GraphABC;
  2.  
  3. Pen.Color := Color.Red;
  4. 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

Реклама

Мы в соцсетях

tw tg yt gt