Нарисовать дорожный знак - Pascal ABC (14778)
Формулировка задачи:
Доброго времени суток. Помогите, пожалуйста, нарисовать дорожный знак "Конец главной дороги" в Паскаль ABC.
Решение задачи: «Нарисовать дорожный знак»
textual
Листинг программы
uses graphABC; var c,a,b,u,r,x1,y1,x2,y2,i:integer; begin setwindowsize(500,500); centerwindow; c:=250;//центр окна a:=200; //половина длины диагонали ромба b:=20; //отступ от углов u:=55; //половина угла закруглния r:=30; //радиус закругления setpenwidth(4);//толщина линий line(c-a,c-b,c-b,c-a); line(c+b,c-a,c+a,c-b); line(c+a,c+b,c+b,c+a); line(c-b,c+a,c-a,c+b); arc(c,c-a+b+2,r,90-u,90+u); arc(c+a-b-2,c,r,360-u,u); arc(c,c+a-b-2,r,270-u,270+u); arc(c-a+b+2,c,r,180-u,180+u); a:=150; b:=10; u:=40; r:=15; setpenwidth(2); line(c-a,c-b,c-b,c-a); line(c+b,c-a,c+a,c-b); line(c+a,c+b,c+b,c+a); line(c-b,c+a,c-a,c+b); arc(c,c-a+b+1,r,90-u,90+u); arc(c+a-b-1,c,r,360-u,u); arc(c,c+a-b-1,r,270-u,270+u); arc(c-a+b+1,c,r,180-u,180+u); floodfill(c,c,clYellow); a:=(a+b) div 2; x1:=c-a-b;y1:=c+a-b; x2:=c+a-b;y2:=c-a-b; for i:=1 to 5 do begin line(x1,y1,x2,y2); x1:=x1+5;y1:=y1+5; x2:=x2+5;y2:=y2+5; end; end.
Объяснение кода листинга программы
- Создание окна с помощью функции setwindowsize и centerwindow.
- Установка толщины линии с помощью функции setpenwidth.
- Нарисованы четыре линии, образующие ромб.
- Нарисованы четыре арки, образующие закругление.
- Установка цвета заливки с помощью функции floodfill.
- Вычисление центра ромба с помощью формулы a=(a+b)/2.
- Определение координат точек x1, y1, x2, y2.
- Цикл для рисования пяти прямоугольников с заданными координататами.
- Перемещение точек x1, y1, x2, y2 на пять единиц вперед.
- Завершение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д