Нарисовать паркет, используя процедуры - Pascal ABC
Формулировка задачи:
Нарисовать паркет с помощью процедуры
Решение задачи: «Нарисовать паркет, используя процедуры»
textual
Листинг программы
uses GraphABC; procedure plitk(x,y,r:integer); var u:real; i:byte; x1,y1:integer; begin circle(x,y,3); u:=0; for i:=1 to 4 do begin x1:=x+round(3*cos(u)); y1:=y-round(3*sin(u)); line(x1,y1,x1+round(r*cos(u-pi/8)),y1-round(r*sin(u-pi/8))); line(x1,y1,x1+round(r*cos(u-pi/8)),y1-round(r*sin(u-pi/8))); line(x1,y1,x1+round(r*cos(u+pi/8)),y1-round(r*sin(u+pi/8))); line(x1,y1,x1+round(r*cos(u+pi/8)),y1-round(r*sin(u+pi/8))); u:=u+pi/2; end; end; var r,x,y:integer; begin r:=20; y:=r; while y<=windowheight do begin x:=r; while x<=windowwidth do begin plitk(x,y,r); x:=x+2*r; end; y:=y+2*r end; end.
Объяснение кода листинга программы
- В начале кода подключается библиотека GraphABC.
- Создается процедура plitk, которая принимает три параметра: x, y и r. Эта процедура рисует треугольник с радиусом 3, центром в точке (x, y) и стороной длиной r.
- Создается переменная u типа real, которая будет использоваться для генерации значений углов в диапазоне от 0 до 2π.
- Создается переменная i типа byte, которая будет использоваться для генерации значений углов в диапазоне от 1 до 4.
- Создаются две переменные x1 и y1 типа integer, которые будут использоваться для хранения координат вершин треугольника.
- Вызывается процедура circle с аргументами (x, y, 3), чтобы нарисовать окружность с радиусом 3 и центром в точке (x, y).
- Инициализируется переменная u значением 0.
- Запускается цикл for, который выполняется 4 раза. На каждой итерации цикла значение переменной i изменяется от 1 до 4.
- Внутри цикла переменная u инициализируется значением 0.
- На каждой итерации цикла вычисляются координаты вершин треугольника: x1 := x + round(3 cos(u)), y1 := y - round(3 sin(u)).
- Вызываются процедуры line с аргументами (x1, y1, x1 + round(r cos(u - pi/8)), y1 - round(r sin(u - pi/8))), (x1, y1, x1 + round(r cos(u - pi/8)), y1 - round(r sin(u - pi/8))), (x1, y1, x1 + round(r cos(u + pi/8)), y1 - round(r sin(u + pi/8))), (x1, y1, x1 + round(r cos(u + pi/8)), y1 - round(r sin(u + pi/8))). Этими процедурами рисуются линии, соединяющие вершины треугольника.
- Значение переменной u увеличивается на π/8 на каждой итерации цикла.
- После завершения цикла переменная u устанавливается равной 2π.
- Создается переменная r типа integer, которая будет использоваться для хранения ширины окна.
- Создается переменная y типа integer, которая будет использоваться для хранения высоты окна.
- Запускается цикл while, который выполняется до тех пор, пока y не станет больше высоты окна.
- Внутри цикла переменная r и переменная y увеличиваются на 2r на каждой итерации цикла.
- После завершения цикла переменная y устанавливается равной 2 * r.
- Координаты вершин треугольника (x1, y1) перемещаются вправо на 2r.
- Цикл while повторяется с новыми значениями переменной r и переменной y.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д