![]() |
![]() |
18192123 |
![]()
Сообщение
#1
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Вот такое задание:
Даны два шарика диаметром М. Промоделировать движение шариков по всей плоскости экрана. Шарики могут двигаться по прямым линиям. Изменение угла движения после столкновения с границей экрана или друг с другом может быть случайной величиной. Шарик не может вылететь за пределы квадрата. Пользователь может варьировать скорости движения шариков с помощью стрелок управления курсором. Хотелось бы разобраться в коде программы... ( дело в том, что код не мой) Объясните пожалуйста назначение каждой из процедур в тексте приведённой ниже программы! Прикрепленные файлы ![]() |
![]() ![]() |
18192123 |
![]()
Сообщение
#2
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Если у меня положения центров шаров будут находиться с помощью такой процедуры:
то как должны выглядеть процедуры procedure charge_on_oppositeX procedure charge_on_oppositeY, которые я использую для изменения направления движения шариков на противоположные при столкновении с границей? Я сделала предположение ,что так:
Прикрепленные файлы ![]() |
Lapp |
![]()
Сообщение
#3
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
как должны выглядеть процедуры ..., которые я использую для изменения направления движения шариков на противоположные при столкновении с границей? Я сделала предположение ,что так: ... результат - шарики ,когда сталкиваются с границей , движутся вдоль неё и замирают в углу. Нет, не так. Эти процедуры долхны менять угол, а не положение! Примерно так: по Х: angle:=180-angle; по Y: angle:=-angle; Иначе эффект действительно будет похожим на то, что ты говоришь PS Если в названиях процедур ты подразумевала "изменить", то это слово пишется change. А слово charge означает нечто другое.. И предлог лучше to, а не on. Это так, к слову.. Добавлено через 15 мин. Вообще-то правильние было бы написать не 180, а Pi .. ![]() Извиняюсь. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
18192123 |
![]()
Сообщение
#4
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Примерно так: по Х: angle:=180-angle; по Y: angle:=-angle; С этим получилось , но в результате , если один из шаров сталкивается с границей, то и второй , где бы он не находился в этот момент, меняет свой угол движения. Как я полагаю, причина в этом:
а это вызов процедур ,описанных выше:
если менять скорость обоих шариков одновременно , то , когда шарики сталкиваются, то они просто сцепливаются.... - не знаю, как это исправить?) столкновение шаров предусмотрено в следующих процедурах:
Сообщение отредактировано: 18192123 - 19.04.2007 14:09 Прикрепленные файлы ![]() |
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 6:02 |