![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Lida |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 6 Пол: Женский Репутация: ![]() ![]() ![]() |
Надо составить программу, изображающую в центре экрана отрезок длины L, вращающийся вокруг одного из своих концов. То есть получается что один конец отрезка - в центре окружности. А другой конец - скользит по этой окружности.
Вот, написала чото. Но почему-то в двух местах конец отрезка не плавно перемещается по окружности а "перепрыгивает" через кучу точек ! ![]() Посмотрите пожалуйста :
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.
|
![]() ![]() |
![]() |
Текстовая версия | 29.07.2025 8:28 |