Изобразить на экране круг, движущийся по окружности с угловой скоростью, управляймой клавишами ">" и "<". - Turbo Pascal
Формулировка задачи:
1.Изобразить на экране круг, движущийся по окружности с угловой скоростью, управляймой клавишами ">" и "<".
2.Изобразить на экране прямоугольник, по периметру которого движется окружность.
Решение задачи: «Изобразить на экране круг, движущийся по окружности с угловой скоростью, управляймой клавишами ">" и "<".»
textual
Листинг программы
uses crt,graph; var xc,yc,w,h,r,x,y,dx,dy:integer; begin x:=0; initgraph(x,y,''); w:=200; h:=100; r:=10; xc:=(getmaxX-w) div 2; yc:=(getmaxY-h) div 2; setcolor(12); rectangle(xc,yc,xc+w,yc+h); x:=xc; y:=yc-r-1; dx:=1; dy:=0; repeat setcolor(14); Circle(x,y,r); delay(10); setcolor(0); Circle(x,y,r); x:=x+dx; y:=y+dy; if(x=xc-r-1)and(y=yc-r-1) then{левый верхний угол} begin dx:=1; dy:=0; end else if(x=xc+w+r+1)and(y=yc-r-1)then{правый верхний} begin dx:=0; dy:=1; end else if(x=xc+w+r+1)and(y=yc+h+r+1)then{првый нижний} begin dx:=-1; dy:=0; end else if(x=xc-r-1)and(y=yc+h+r+1)then{левый нижний} begin dx:=0; dy:=-1; end; until keypressed; end.
Объяснение кода листинга программы
- Используется библиотека crt для работы с графическим интерфейсом и графическим движком.
- Переменные xc, yc, w, h, r, x, y, dx, dy определены и инициализированы значениями.
- Переменные x и y устанавливаются в начальные координаты центра круга.
- Переменная r определяет радиус круга.
- Переменные dx и dy определяют угловую скорость движения круга по оси x и y соответственно.
- Цикл repeat используется для непрерывного движения круга по экрану.
- Внутри цикла выполняются следующие действия:
- Устанавливается цвет кисти в черный (цвет 12).
- Рисуется прямоугольник с центрами в точках (xc, yc) и (xc+w, yc+h).
- Устанавливается цвет кисти в белый (цвет 14).
- Рисуется круг с центром в точке (x, y) и радиусом r.
- Вызывается функция delay(10), чтобы замедлить движение круга.
- Устанавливается цвет кисти в черный (цвет 0).
- Рисуется круг с центром в точке (x, y) и радиусом r.
- Переменные x и y обновляются на новые значения, полученные от функции getmaxX и getmaxY.
- Если условие x=xc-r-1 и y=yc-r-1 выполняется, то dx и dy сбрасываются в начальные значения.
- Если условие x=xc+w+r+1 и y=yc-r-1 выполняется, то dx и dy сбрасываются в начальные значения.
- Если условие x=xc+w+r+1 и y=yc+h+r+1 выполняется, то dx и dy сбрасываются в начальные значения.
- Если условие x=xc-r-1 и y=yc+h+r+1 выполняется, то dx и dy сбрасываются в начальные значения.
- Цикл while продолжается до тех пор, пока не будет нажата клавиша.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д