27 / 27 / 18
Регистрация: 13.09.2014
Сообщений: 137
|
||||||
1 | ||||||
Сохранение предыдущих вращений объекта01.12.2015, 13:40. Показов 503. Ответов 4
Метки нет (Все метки)
Пишу 3D бильярд на OpenGL. Не получается сделать правильное вращение шаров. Допустим, шар ударяется об борт стола, меняет направление и теперь должен вращаться с учетом его вращения до удара об борт.
Как высчитывать новые вращения в зависимости от старых при столкновении шаров, шара и борта? Вот код (шар движется по оси X и оси Z):
Надеюсь, понятно объяснил. С вас это, а я бильярд выложу на github)
0
|
01.12.2015, 13:40 | |
Ответы с готовыми решениями:
4
Сохранение N предыдущих копий архивов Сохранение предыдущих данных при динамическом добавлении поля ввода Элементы с четными индексами заменить максимумом предыдущих элементов, остальные - минимумом предыдущих. Сохранение состояния объекта в БД |
64 / 17 / 3
Регистрация: 09.11.2013
Сообщений: 120
|
||||||
01.12.2015, 14:51 | 2 | |||||
Я через эти вычисления проходил в этой программе,если честно для вычисления пропорционального отражения удара надо ломать мозг недели две,методом проб и многоразовых тестов искать формулу вживую
Там должна быть длиннющая формула с делениями и минусовкой иксов и игреков,типа (x1-x2)-(y2+y1)/2 ... Тебе придется самому эту формулу искать.Это чистая алгебра и геометрия. Добавлено через 56 минут образец формулы на visual basic.net:
1
|
snake32
|
01.12.2015, 15:32
#3
|
0
|
1823 / 731 / 99
Регистрация: 01.10.2012
Сообщений: 3,739
|
|
01.12.2015, 19:04 | 4 |
Да, но это луч света в темном царстве OpenGL :-) Году так в 2000 я пытался написать свой движок физики (ну был тогда моложе ). Конечно ничем реальным это не кончилось, но, как говорится, "приобрел жизненный опыт". Что (смутно) помню:
- шар = rigid body, имеющий COM (центр масс, для щара просто центр), движение которого полностью описывается 2 вещами: - линейная скорость приложенная к центру масс - момент силы приложенный к тому же центру масс Момент силы записывается как угловая скорость, в виде вектора длина которого = углу вращения в радианах, а направление = ось вращения. Т.е. имея скорость и момент - имеете матрицу. При столкновении нужно посчитать новый вектор скрости (просто отражение) и новый момент (это уже не помню). Остальное - копайте
1
|
27 / 27 / 18
Регистрация: 13.09.2014
Сообщений: 137
|
|
02.12.2015, 06:10 [ТС] | 5 |
Спасибо за ответы. Значит сделаю шары одноцветными)
0
|
02.12.2015, 06:10 | |
02.12.2015, 06:10 | |
Помогаю со студенческими работами здесь
5
Редактирование и сохранение объекта Сохранение свойств объекта Сохранение объекта в XML Сохранение объекта JSON Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |