Изобразить окружность радиуса r, перемещающуюся по синусоиде. - Free Pascal
Формулировка задачи:
Изобразить окружность радиуса r, перемещающуюся по синусоиде.
Решение задачи: «Изобразить окружность радиуса r, перемещающуюся по синусоиде.»
textual
Листинг программы
uses graph,crt; var r,x,y,y1:integer; begin initgraph(x,y,''); r:=20; x:=r; y:=getmaxY div 2; while x<getmaxX-10 do begin y1:=y-round(150*sin(x*pi/180)); setcolor(12); circle(x,y1,r); delay(20); setcolor(0); circle(x,y1,r); x:=x+2; end; setcolor(12); settextstyle(0,0,2); outtextXY(getmaxX div 2-40,getmaxY div 2,'Exit...'); readln end.
Объяснение кода листинга программы
- Подключение необходимых модулей для работы с графикой и консолью
- Объявление переменных: радиуса окружности (r), координат окружности (x, y), координат окружности по синусоиде (y1)
- Инициализация графического режима и размеров окна
- Установка начальных значений для переменных: радиус окружности (r), координаты окружности (x, y)
- Запуск главного цикла программы, который будет выполняться до тех пор, пока переменная x меньше максимальной ширины экрана минус 10
- Вычисление координат окружности по синусоиде (y1)
- Отображение окружности на экране с помощью функции circle, с заданными параметрами (x, y1, r)
- Задержка в 20 миллисекунд для создания эффекта движения
- Сброс цвета кисти для подготовки к следующему циклу отрисовки
- Повторение шагов 7-9 для каждой итерации цикла
- Отображение строки
Exit...
в центре экрана с помощью функции outtextXY - Ожидание нажатия клавиши для выхода из программы
- Завершение работы программы