Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2010, 15:08   #1
TacoBell
Пользователь
 
Регистрация: 18.04.2010
Сообщений: 31
По умолчанию Как вычислить координаты после отражения?

Доброго времени суток! Опишу для начала вкратце что я делаю.

У меня есть ТЗ на игру пинбол (курсовая). Игра пишется на C++ + SDL. Спрайты, бэкграунд и всякую лабуду типа классов я могу сделать и делаю. Так вот. Теперь суть проблемы: я не могу расчитать скорость после отражения шарика от стены. Я, конечно, пытался все это дело сделать сам: у меня есть txt файл с координатами стены (типа векторной графики что-то). После запуска игры загружается файл в два массива (координаты по X и Y). Как только координаты шарика совпадают со стеной, так высчитываются 2 точки в радиусе 7 пикселей которые принадлежат стене (массивам координат). Ну далее через всякие задротские функции высчитывается угол падения -> отражения -> скорость по осям X и Y. Впринципе, иногда, все правильно расчитывается. Но не всегда. Код приывести не могу, так как он слишком корявый и обьемный. Могу лишь спалить свою функцию расчета скорости после отражения (но без моих картинок ее врятли кто-нибудь поймет).

Так вот. А если в кратце, то: Помогитееееее!!!

p.S> АХ да... Вобщем вопрос вот какой: как можно расчитать угол отражения или скорость после отражения шарика от препятствия? Причем стена может быть расположена под совершенно рандомным углом к осям X и Y.

Последний раз редактировалось TacoBell; 18.04.2010 в 15:10. Причина: Вопрос забыл....
TacoBell вне форума Ответить с цитированием
Старый 18.04.2010, 20:58   #2
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Если происходит абсолютно упругий недеформируемый удар, то модуль вектора скорости сразу после отскока равен модулю вектора скорости в момент удара.

Углы (двумерная модель, я так понимаю?...):
γ = 2β-α, где
α - угол между вектором скорости шарика и положительным направлением оси [OX];
β - то же для "стены";
γ - то же для вектора скорости шарика после отскока.
Vago вне форума Ответить с цитированием
Старый 20.04.2010, 21:39   #3
TacoBell
Пользователь
 
Регистрация: 18.04.2010
Сообщений: 31
По умолчанию

Спасибо огромное! А что значит угол между стеной и положительным направлением оси x? Как я понял, он не может быть больше 180 градусов? Ну тогда, я думаю, такой вариант не прокатит
TacoBell вне форума Ответить с цитированием
Старый 20.04.2010, 22:20   #4
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Цитата:
Сообщение от TacoBell Посмотреть сообщение
Как я понял, он не может быть больше 180 градусов?
По модулю.
Цитата:
Сообщение от TacoBell Посмотреть сообщение
Ну тогда, я думаю, такой вариант не прокатит
Не совсем понял.
100420.jpg
Шарик летит перпендикулярно стене.
α = -135; β = 135

γ = 2×135-(-135) = 270+135 = 405 = 360+45 = 45.
Или можно взять β меньшим по величине, т.е. -45. Тогда
γ = 2×(-45)-(-135) = -90+135 = те же 45.
Vago вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как уяснить координаты y,x в ImageBox TiestoStar Помощь студентам 1 11.03.2010 13:34
Рендеринг изображения - создание отражения BOBAH13 Gamedev - cоздание игр: Unity, OpenGL, DirectX 4 18.01.2009 16:27
как узнать координаты курсора nikleb Общие вопросы C/C++ 2 29.10.2008 23:36
как узнать координаты в рисунке? motaro Паскаль, Turbo Pascal, PascalABC.NET 2 22.03.2008 06:55
Создать функцию, позволяющую вычислить новую стоимость товара после уценки. Визуал Бэйсик. КПСС Помощь студентам 6 07.11.2007 01:00