Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ графика

Автор: Lida 20.12.2006 14:19

Надо составить программу, изображающую в центре экрана отрезок длины L, вращающийся вокруг одного из своих концов. То есть получается что один конец отрезка - в центре окружности. А другой конец - скользит по этой окружности.
Вот, написала чото. Но почему-то в двух местах конец отрезка не плавно перемещается по окружности а "перепрыгивает" через кучу точек ! blink.gif
Посмотрите пожалуйста :


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.


Автор: мисс_граффити 20.12.2006 21:25

1) попробуй увеличить задержки
2) почитай вот это http://forum.pascal.net.ru/index.php?showtopic=6562&hl=%E2%F0%E0%F9%E5%ED%E8%E5