Нарисовать траекторию для круга - PascalABC.NET
Формулировка задачи:
Программисты, уповаю на вашу помощь.
Нужно:
1.Что бы за кружком следовала пунктирная траектория. 2.Фон был желтый. 3.Круг должен быть цельный(зарисованный).
Решение задачи: «Нарисовать траекторию для круга»
textual
Листинг программы
uses graphabc; var x,y,x0,y0,d,n,i,j,c:integer; m:array[1..2,1..1000]of integer; a:real; begin setwindowsize(700,500); x0:=100; y0:=475; a:=pi/2; d:=375; //создадим массив точек траектории n:=0; while a>0 do begin n:=n+1; m[1,n]:=x0+round(d*cos(a)); m[2,n]:=y0-round(d*sin(a)); a:=a-0.01; end; clearwindow(clYellow); setpenwidth(5); setpencolor(clred); line(0,125,100,125); line(425,475,525,475); j:=0; a:=pi/2; lockdrawing; repeat clearwindow(clYellow); setpenwidth(5); line(0,125,100,125); line(425,475,525,475); c:=clrandom; setpencolor(c); setbrushcolor(c); j:=j+1; for i:=1 to j do putpixel(m[1,i],m[2,i],clBlue); x:=x0+round(d*cos(a)); y:=y0-round(d*sin(a)); circle(x,y,15); setpencolor(clred); sleep(50); a:=a-0.01; redraw; until a<0.05; end.
Объяснение кода листинга программы
- Объявлены переменные: x, y, x0, y0, d, n, i, j, c, m (массив), a (угол)
- Заданы начальные значения переменных: x0, y0, d, a
- Создается массив точек траектории методом итерации по шагу 0.01 радиана
- Очищается окно и рисуется линия для оси x от (0,125) до (100,125) и линия для оси y от (425,475) до (525,475)
- Задается начальный цвет для рисования - clred (красный)
- В цикле while, для каждой точки траектории на массиве, рисуется точка синим цветом (clBlue)
- Рисование линии с текущими координатами x и y, а также окружность с радиусом 15 вокруг этих координат
- Смена цвета линии на красный (clred)
- Спящий режим на 50 миллисекунд для плавности анимации
- Уменьшение угла a на 0.01 радиана
- Повторение шагов 4-10 до тех пор, пока значение угла a больше или равно 0.05 радиана.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д