Нарисовать паркет, используя процедуры - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Нарисовать паркет с помощью процедуры

Решение задачи: «Нарисовать паркет, используя процедуры»

textual
Листинг программы
  1. uses GraphABC;
  2. procedure plitk(x,y,r:integer);
  3. var u:real;
  4.     i:byte;
  5.     x1,y1:integer;
  6. begin
  7. circle(x,y,3);
  8. u:=0;
  9. for i:=1 to 4 do
  10.  begin
  11.   x1:=x+round(3*cos(u));
  12.   y1:=y-round(3*sin(u));
  13.   line(x1,y1,x1+round(r*cos(u-pi/8)),y1-round(r*sin(u-pi/8)));
  14.   line(x1,y1,x1+round(r*cos(u-pi/8)),y1-round(r*sin(u-pi/8)));
  15.   line(x1,y1,x1+round(r*cos(u+pi/8)),y1-round(r*sin(u+pi/8)));
  16.   line(x1,y1,x1+round(r*cos(u+pi/8)),y1-round(r*sin(u+pi/8)));
  17.   u:=u+pi/2;
  18.  end;
  19. end;
  20.  
  21. var r,x,y:integer;
  22. begin
  23. r:=20;
  24. y:=r;
  25. while y<=windowheight do
  26.  begin
  27.   x:=r;
  28.   while x<=windowwidth do
  29.    begin
  30.     plitk(x,y,r);
  31.     x:=x+2*r;
  32.    end;
  33.   y:=y+2*r
  34.  end;
  35. end.

Объяснение кода листинга программы

  1. В начале кода подключается библиотека GraphABC.
  2. Создается процедура plitk, которая принимает три параметра: x, y и r. Эта процедура рисует треугольник с радиусом 3, центром в точке (x, y) и стороной длиной r.
  3. Создается переменная u типа real, которая будет использоваться для генерации значений углов в диапазоне от 0 до 2π.
  4. Создается переменная i типа byte, которая будет использоваться для генерации значений углов в диапазоне от 1 до 4.
  5. Создаются две переменные x1 и y1 типа integer, которые будут использоваться для хранения координат вершин треугольника.
  6. Вызывается процедура circle с аргументами (x, y, 3), чтобы нарисовать окружность с радиусом 3 и центром в точке (x, y).
  7. Инициализируется переменная u значением 0.
  8. Запускается цикл for, который выполняется 4 раза. На каждой итерации цикла значение переменной i изменяется от 1 до 4.
  9. Внутри цикла переменная u инициализируется значением 0.
  10. На каждой итерации цикла вычисляются координаты вершин треугольника: x1 := x + round(3 cos(u)), y1 := y - round(3 sin(u)).
  11. Вызываются процедуры 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))). Этими процедурами рисуются линии, соединяющие вершины треугольника.
  12. Значение переменной u увеличивается на π/8 на каждой итерации цикла.
  13. После завершения цикла переменная u устанавливается равной 2π.
  14. Создается переменная r типа integer, которая будет использоваться для хранения ширины окна.
  15. Создается переменная y типа integer, которая будет использоваться для хранения высоты окна.
  16. Запускается цикл while, который выполняется до тех пор, пока y не станет больше высоты окна.
  17. Внутри цикла переменная r и переменная y увеличиваются на 2r на каждой итерации цикла.
  18. После завершения цикла переменная y устанавливается равной 2 * r.
  19. Координаты вершин треугольника (x1, y1) перемещаются вправо на 2r.
  20. Цикл while повторяется с новыми значениями переменной r и переменной y.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.538 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы