Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
17 / 0 / 0
Регистрация: 08.11.2013
Сообщений: 5

Не могу остановить шарик на конце линии

05.12.2013, 20:38. Показов 2713. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
uses graphABC;
var x,y,dx,dy,xc,yc,x1,y1,r,r1,i:integer;
    a,u:real;
begin
r:=10;//радиус шара
x:=r; //начальное положение шара
y:=r;
dx:=4;//шаг движения по наклонной
dy:=3;
x1:=windowwidth div 2;//начало петли
a:=arctan(windowwidth/windowheight); //угол между наклонной и осью Y
r1:=50;//радиус петли
lockdrawing;
while x<=x1 do //до начала петли
 begin
  clearwindow;
  setbrushcolor(clred);
  circle(x,y,r);
  sleep(50);
setbrushstyle(bsclear);
line(8,20,8,259);
line(8,259,346,259);
 
line(8,20, 315,251);
line(339,259,700,259);
setbrushstyle(bsclear);
 circle(346,200,60);
 
  x:=x+dx;
  y:=y+dy;
  redraw
 end;
 
xc:=x+round(r1*cos(a)); //центр вращения=петли
yc:=y-round(r1*sin(a));
u:=pi+a;//начальный угол
//петля
while u<=3*pi+a+0.9 do
 begin
  clearwindow;
  x:=xc+round(r1*cos(u));
  y:=yc-round(r1*sin(u));
  setbrushcolor(clred);
  circle(x,y,r);
  sleep(50);
  line(8,20,8,259);
line(8,259,346,259);
 
line(8,20, 315,251);
line(339,259,700,259);
setbrushstyle(bsclear);
 circle(346,200,60);
u:=u+0.1;
  redraw
 end;
//после петли и до конца
while y<=windowheight-r do
 begin
 if (X < 350) then Y:=Y+1;
X:=X+1;
 
  clearwindow;
  setbrushcolor(clred);
  circle(x,y,r);
  sleep(20);
  line(8,20,8,259);
line(8,259,346,259);
 
line(8,20, 315,251);
line(339,259,700,259);
setbrushstyle(bsclear);
 circle(346,200,60);
 
 
 
  redraw
 
end;
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.12.2013, 20:38
Ответы с готовыми решениями:

Управление анимацией, в данном случае остановить шарик.
Как уже говорилось, при клике мышки на шар, он должен замереть, при повторном клике, двигаться дальше. &lt;html&gt; &lt;head&gt;...

Как остановить программу в конце?
Здравствуйте. Скажите, как остановить программу в самом конце. Допустим я запускаю программу &quot;Hello, World!&quot;. На экране...

Стрелочка на конце линии
Font font1 = new Font(&quot;Arial&quot;, 12, FontStyle.Regular); Graphics g = pictureBox1.CreateGraphics(); Pen...

5
 Аватар для ermolay
3451 / 2389 / 2135
Регистрация: 04.12.2011
Сообщений: 3,966
05.12.2013, 20:48
прикольная анимашка! Постов у вас маловато, плюсик бы поставил)
57-я строка должна быть такая:
Pascal
1
while x<=windowwidth-r do
1
17 / 0 / 0
Регистрация: 08.11.2013
Сообщений: 5
05.12.2013, 21:18  [ТС]
вставил, не останавливается...
0
 Аватар для ermolay
3451 / 2389 / 2135
Регистрация: 04.12.2011
Сообщений: 3,966
05.12.2013, 21:23
у меня останавливается.
вот код с одной измененной строчкой, ну и отформатировал код:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
uses
  graphABC;
 
var
  x, y, dx, dy, xc, yc, x1, y1, r, r1, i: integer;
  a, u: real;
 
begin
  r := 10;
  x := r; 
  y := r;
  dx := 4;
  dy := 3;
  x1 := windowwidth div 2;
  a := arctan(windowwidth / windowheight);
  r1 := 50;
  lockdrawing;
  while x <= x1 do 
  begin
    clearwindow;
    setbrushcolor(clred);
    circle(x, y, r);
    sleep(50);
    setbrushstyle(bsclear);
    line(8, 20, 8, 259);
    line(8, 259, 346, 259);
    
    line(8, 20, 315, 251);
    line(339, 259, 700, 259);
    setbrushstyle(bsclear);
    circle(346, 200, 60);
    
    x := x + dx;
    y := y + dy;
    redraw
  end;
  
  xc := x + round(r1 * cos(a)); 
  yc := y - round(r1 * sin(a));
  u := pi + a;
 
  while u <= 3 * pi + a + 0.9 do
  begin
    clearwindow;
    x := xc + round(r1 * cos(u));
    y := yc - round(r1 * sin(u));
    setbrushcolor(clred);
    circle(x, y, r);
    sleep(50);
    line(8, 20, 8, 259);
    line(8, 259, 346, 259);
    
    line(8, 20, 315, 251);
    line(339, 259, 700, 259);
    setbrushstyle(bsclear);
    circle(346, 200, 60);
    u := u + 0.1;
    redraw
  end;
 
  while x <= windowwidth - r do
  begin
    if (X < 350) then Y := Y + 1;
    X := X + 1;
    
    clearwindow;
    setbrushcolor(clred);
    circle(x, y, r);
    sleep(20);
    line(8, 20, 8, 259);
    line(8, 259, 346, 259);
    
    line(8, 20, 315, 251);
    line(339, 259, 700, 259);
    setbrushstyle(bsclear);
    circle(346, 200, 60);
    redraw
  end;
end.
1
17 / 0 / 0
Регистрация: 08.11.2013
Сообщений: 5
05.12.2013, 21:31  [ТС]
не знаю...у меня вообще какой-то бред))но спасибо за идею, получилось немного не так как я хотел,но вышло лучше))P.s. курсовая работа))
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
05.12.2013, 21:33
Строка
Pascal
1
if (X < 350) then Y := Y + 1;
совершено лишняя.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.12.2013, 21:33
Помогаю со студенческими работами здесь

Увеличить стрелку на конце линии
pen.EndCap = System.Drawing.Drawing2D.LineCap.ArrowAnchor; Вот так рисую стрелку. Но как увеличить саму стрелку в размерах? Она...

Как изменится напряжение в конце линии
Как изменится напряжение в конце линии, если в ее середине произойдет короткое замыкание? 1) уменьшится 2) не изменится 3) станет...

Как на конце линии нарисовать крупную стрелку
Здравствуйте) нашел как нарисовать обычную стрелку на конце линии, но она очень мелкая, пару миллиметров всего. Как сделать, чтобы она...

В программе, где шарик ударяется об стены, заменить сам шарик
Вопрос в том, как заменить сам шарик на другой объект/текст. Вот например сделать Hello World вместо шарика. Исходник с примера в Dev c++....

Рассчитать коэффициент отражения и изобразить распределение тока и напряжения в линии при разомкнутом конце ли
Рассчитать коэффициент отражения и изобразить распределение тока и напряжения в линии при разомкнутом конце линии.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru