Нарисуйте в центре экрана звезду - Free Pascal
Формулировка задачи:
Нарисуйте в центре экрана ЗВЕЗДУ(для выполнения этого задания рисунок лучше предварительно создать на листе бумаги в масштабе, чтобы правильно определить координаты.
Заранее благодарен.
Решение задачи: «Нарисуйте в центре экрана звезду»
textual
Листинг программы
uses math, graph; procedure Star(X, Y : integer; R : integer); var pts : array [0 .. 10] of PointType; i, Angle : integer; Dist : integer; begin Angle := 90; for i := 0 to 9 do begin if Odd(i) then Dist := R div 3 else Dist := R; pts[i].X := X + Trunc(Dist * Cos(DegToRad(Angle))); pts[i].Y := Y - Trunc(Dist * Sin(DegToRad(Angle))); Inc(Angle, 36); end; pts[10] := pts[0]; DrawPoly(11, pts); end; var gd, gm : smallint; begin initgraph(gd, gm, ''); star(getmaxx div 2, getmaxy div 2, getmaxy div 8); // координаты центра и размеры меняются по желанию readln; closegraph; end.
Объяснение кода листинга программы
Вот что делает этот код:
- Использует модули math и graph.
- Определяет процедуру Star для рисования звезды.
- Создает массив pts для хранения координат вершин звезды.
- Устанавливает начальный угол Angle равным 90 градусам.
- Цикл от 0 до 9:
- Если i - нечетное число, то Dist становится R/3, иначе R.
- Вычисляет координаты X и Y для вершины звезды на основе текущего угла и расстояния Dist.
- Увеличивает угол на 36 градусов.
- Последняя вершина звезды (i=10) копируется из первой вершины (i=0).
- Вызывается функция DrawPoly для рисования звезды из 11 вершин.
- Заголовок и тело программы:
- Инициализация графического режима с помощью функции initgraph.
- Вызов функции star с аргументами (getmaxx div 2, getmaxy div 2, getmaxy div 8) для рисования звезды в центре экрана.
- Чтение строки с помощью функции readln.
- Закрытие графического режима с помощью функции closegraph.
Обратите внимание, что в этом коде используются вызовы функций и заголовок
var gd, gm : smallint;
для инициализации графического режима, что является общим при работе с графикой в Free Pascal.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д