Вот, написала чото. Но почему-то в двух местах конец отрезка не плавно перемещается по окружности а "перепрыгивает" через кучу точек !

Посмотрите пожалуйста :
Program rotation;
Uses
Crt,
Graph;
Var
L,x,y:Integer;
Gd,Gm:Integer;
Begin
Clrscr;
Write('Длина отрезка-->');
Readln(L);
DetectGraph(Gd,Gm);
InitGraph(Gd,Gm,'C:\PROGRA~1\TUBOPA~1\BP\BGI');
ClearDevice;
SetLineStyle(0,0,3);
Repeat
For x:=320-L To 320+L Do
Begin
ClearDevice;
y:=Trunc(sqrt(sqr(L)-sqr(x-320))+240);
Line(320,240,x,y);
Delay(5);
End;
For x:=320+L Downto 320-L Do
Begin
ClearDevice;
y:=Trunc(240-sqrt(sqr(L)-sqr(x-320)));
Line(320,240,x,y);
Delay(5);
End;
Until keypressed;
Readln;
CloseGraph;
End.