Построить треугольники в графическом режиме - Free Pascal
Формулировка задачи:
Построить на экране 10 равносторонних треугольников, каждый следующий из которых имеет сторону в 1.2 раза больше предыдущего, а центры лежат на одной горизонтальной прямой на расстоянии в 20 пикселей друг от друга. Использовать цикл.
Как реализовать? Спасибо
Решение задачи: «Построить треугольники в графическом режиме»
textual
Листинг программы
uses graph,wincrt; procedure trg(x,y,r:integer); var i:byte; u:real; begin u:=pi/2; moveto(x+round(r*cos(u)),y-round(r*sin(u))); for i:=1 to 3 do begin u:=u+2*pi/3; lineto(x+round(r*cos(u)),y-round(r*sin(u))); end; end; var x,y,r,i:integer; begin initgraph(x,y,''); r:=50; x:=getmaxX div 3; y:=getmaxY div 2; for i:=1 to 10 do begin trg(x,y,r); x:=x+20; r:=round(r*1.2); end; readkey end.
Объяснение кода листинга программы
- uses graph,wincrt; - подключаем модули для работы с графикой
- procedure trg(x,y,r:integer); - объявляем процедуру для построения треугольника
- var i:byte; - объявляем переменную для цикла
- var u:real; - объявляем переменную для хранения угла
- begin - начало процедуры
- u:=pi/2; - инициализируем угол
- moveto(x+round(rcos(u)),y-round(rsin(u))); - перемещаем точку начала треугольника
- for i:=1 to 3 do - начинаем цикл для построения трех вершин треугольника
- begin - начало цикла
- *u:=u+2pi/3;** - увеличиваем угол на 2π/3
- lineto(x+round(rcos(u)),y-round(rsin(u))); - рисуем сторону треугольника
- end; - конец цикла
- end; - конец процедуры
- var x,y,r,i:integer; - объявляем переменные для основной программы
- begin - начало основной программы
- initgraph(x,y,''); - инициализируем графический режим
- r:=50; - задаем радиус треугольника
- x:=getmaxX div 3; - задаем координату x для первой вершины треугольника
- y:=getmaxY div 2; - задаем координату y для первой вершины треугольника
- for i:=1 to 10 do - начинаем цикл для построения 10 треугольников
- begin - начало цикла
- trg(x,y,r); - вызываем процедуру для построения треугольника
- x:=x+20; - перемещаем точку начала для следующей строки
- *r:=round(r1.2);** - увеличиваем радиус на 1.2
- end; - конец цикла
- readkey - ожидаем нажатия клавиши для завершения программы
- end. - конец программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д