Изобразить окружность радиуса 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.

Объяснение кода листинга программы

  1. Подключение необходимых модулей для работы с графикой и консолью
  2. Объявление переменных: радиуса окружности (r), координат окружности (x, y), координат окружности по синусоиде (y1)
  3. Инициализация графического режима и размеров окна
  4. Установка начальных значений для переменных: радиус окружности (r), координаты окружности (x, y)
  5. Запуск главного цикла программы, который будет выполняться до тех пор, пока переменная x меньше максимальной ширины экрана минус 10
  6. Вычисление координат окружности по синусоиде (y1)
  7. Отображение окружности на экране с помощью функции circle, с заданными параметрами (x, y1, r)
  8. Задержка в 20 миллисекунд для создания эффекта движения
  9. Сброс цвета кисти для подготовки к следующему циклу отрисовки
  10. Повторение шагов 7-9 для каждой итерации цикла
  11. Отображение строки Exit... в центре экрана с помощью функции outtextXY
  12. Ожидание нажатия клавиши для выхода из программы
  13. Завершение работы программы

Оцени полезность:

7   голосов , оценка 4 из 5
Похожие ответы