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