zadach257.PAS

{* Задача 257 *}

Unit ZADACH257;
Interface
Implementation
Begin
 writeln('

Круглое кольцо вращается с постоянной угловой скоростью, вокруг своего диаметра, расположенного параллельно горизонтальной оси экрана. Изобразить на экране процесс вращения. Считать, что в момент времени t кольцо выглядит для наблюдателя как эллипс, большая ось которого равна постоянной величине С, а малая равна С|coswt| где w-угловая скорость вращения.

'
);
End.

Program zadach257;

Uses zadach257.pas; {* Эту строку можно удалить *}
Uses crt, graphABC; {* Подключаем внешние файлы *}
Const {* Постоянные значения *}
  R = 100;
Var {* Объявление переменных *}
  dx : integer;
  dy : integer;
Begin
  SetWindowCaption('pic. 101');
  SetWindowSize(500, 250);
  dy := 0;
  Repeat      Ellipse(275, 125 - abs(round(R * cos(dy * pi / 180))), 475, 125 + abs(round(R * cos(dy * pi / 180))));
    Line(round(R * cos((dy + 90) * pi / 180)) + 125,           round(R * sin((dy + 90) * pi / 180)) + 125,           round(R * cos((dy - 90) * pi / 180)) + 125,           round(R * sin((dy - 90) * pi / 180)) + 125);
  delay(40);
  ClearWindow;
  dY := (dY + 1)Mod 360;
  Until KeyPressed; {* Ждем нажатия клавиши *}
  readKey; {* Ждем нажатия любой клавиши *}
End.