Нарисовать паркет, используя процедуры - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д