Создайте еще несколько новых графических процедур, которые бы расширили возможность стандартной библиотеки. - Pascal ABC
Формулировка задачи:
Решение задачи: «Создайте еще несколько новых графических процедур, которые бы расширили возможность стандартной библиотеки.»
- uses graphABC;
- //зададим ромб координатами центра и половинами длин диагоналей
- procedure romb(x,y,a,b:integer); //diamond
- begin
- moveto(x-a,y);
- lineto(x,y-b);
- lineto(x+a,y);
- lineto(x,y+b);
- lineto(x-a,y);
- end;
- //зададим параллелограмм кординатами левой нижней вершины, длинами сторон
- // и углом при вешине (x,y) 0<u<180
- procedure parallelogramm(x,y,a,b,u:integer);
- var x1,y1:integer;
- begin
- x1:=x+round(b*cos(u*pi/180));
- y1:=y-round(b*sin(u*pi/180));
- moveto(x,y);
- lineto(x1,y1);
- lineto(x1+a,y1);
- lineto(x+a,y);
- lineto(x,y);
- end;
- begin
- romb(100,100,50,80);
- parallelogramm(300,150,150,100,100);
- end.
Объяснение кода листинга программы
В данном коде используются две новые графические процедуры: romb и parallelogramm. Процедура romb принимает четыре параметра: x, y, a и b, которые представляют собой координаты центра и половины длин диагоналей ромба. Внутри процедуры происходит вызов функции moveto для перемещения курсора в точку (x-a,y), затем вызовы функций lineto для создания линий между точками (x,y-b), (x+a,y), (x,y+b) и (x-a,y). Процедура parallelogramm также принимает четыре параметра: x, y, a и b, а также переменную u, которая представляет собой угол при вершине параллелограмма. Внутри процедуры происходит вычисление координат левой нижней вершины параллелограмма с помощью формулы (x+acos(upi/180), y-asin(upi/180)). Затем происходит вызов функций moveto, lineto и lineto для создания линий между точками (x,y), (x1,y1), (x1+a,y1) и (x+a,y). В конце кода происходит вызов процедур romb и parallelogramm, которые создают ромб и параллелограмм соответственно.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д