Нарисуйте последовательность из 16 разноцветных заполненных звезд - Pascal ABC
Формулировка задачи:
помогите... нарисуйте последовательность из 16 разноцветных заполненных звезд..
Решение задачи: «Нарисуйте последовательность из 16 разноцветных заполненных звезд»
textual
Листинг программы
uses graphABC; type Tpoint=record x,y:integer; end; var i,j,x,y,r,r1,a:integer; p:array[1..11]of TPoint; begin setwindowsize(800,100); centerwindow; r:=windowwidth div 32; r1:=round(r*0.38); y:=windowheight div 2; for i:=1 to 16 do begin x:=(2*i-1)*R; a:=90; for j:=1 to 10 do begin if j mod 2=0 then begin p[j].x:=x+round(r1*cos(a*pi/180)); p[j].y:=y-round(r1*sin(a*pi/180)); end else begin p[j].x:=x+round(r*cos(a*pi/180)); p[j].y:=y-round(r*sin(a*pi/180)); end; a:=a+36; end; p[11]:=p[1]; setpencolor(clRed); setbrushcolor(clRed); polygon(p,11); end; end.
Объяснение кода листинга программы
- В первой строке используется библиотека graphABC, которая, вероятно, предоставляет функции для работы с графиками.
- Создается тип TPoint, который представляет точку с координатами x и y.
- Создаются переменные i, j, x, y, r и r1. Переменная x и y устанавливается в размеры окна, а переменные r и r1 вычисляются для определения размера звезды.
- Создается массив p, который будет содержать точки для звезды.
- Задается размер окна в 800 на 100 точек.
- Для каждой точки в массиве p выполняется следующий блок кода:
- x устанавливается в (2i-1)r, где i - номер точки от 1 до 16.
- a устанавливается в 90 градусов, что, вероятно, определяет угол для каждой точки.
- Если i - четное число, то для каждой точки выполняется первый блок кода, где x и y устанавливаются в координаты точки, а a увеличивается на 36 градусов.
- Если i - нечетное число, то для каждой точки выполняется второй блок кода, где x и y устанавливаются в координаты точки, а a увеличивается на 180 градусов.
- После завершения цикла для каждой точки в массиве p выполняется еще один блок кода:
- Устанавливается цвет кисти и цвета фона в красный.
- Вызывается функция polygon, которая рисует многоугольник из точек массива p.
- Код завершается.