Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D

Ответ
 
Опции темы
Старый 14.12.2012, 08:51   #1
Devilox
ПроЭктировщик
 
Аватар для Devilox
 
Регистрация: 14.01.2012
Адрес: Зеленоград
Сообщений: 192
Написано 5 полезных сообщений
(для 9 пользователей)
Закрутка объектов

Мы заставляем объекты двигаться, прикладывая к ним силу. Если сила направлена ровно, то тело движется без вращения, а если, например, приложить силу к какому-нибудь углу параллелепипеда, то он будет двигаться, вращаясь. Можно ли как-нибудь реализовать зависимость скорости и направления от точки приложения?
P.S. Мне кажется, что надо использовать явление момента силы, но вот только как...
__________________
(Offline)
 
Ответить с цитированием
Старый 14.12.2012, 09:14   #2
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,019
Написано 2,312 полезных сообщений
(для 5,349 пользователей)
Ответ: Закрутка объектов

Может лучше использовать готовый движок физики? Самый простой и бесплатный вариант это ODE.
(Offline)
 
Ответить с цитированием
Старый 14.12.2012, 09:14   #3
Raion
Знающий
 
Аватар для Raion
 
Регистрация: 24.12.2008
Сообщений: 280
Написано 145 полезных сообщений
(для 775 пользователей)
Ответ: Закрутка объектов

Для этого есть физические библиотеки.
http://forum.boolean.name/showthread.php?t=14511
(Offline)
 
Ответить с цитированием
Старый 14.12.2012, 12:32   #4
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Закрутка объектов

Теорема Гюйгенса-Штейнера?
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 17.12.2012, 20:46   #5
Devilox
ПроЭктировщик
 
Аватар для Devilox
 
Регистрация: 14.01.2012
Адрес: Зеленоград
Сообщений: 192
Написано 5 полезных сообщений
(для 9 пользователей)
Ответ: Закрутка объектов

Нет, это не подойдёт. Выяснил, что это можно высчитать с помощью момента импульса, кто-нибудь знает, как?
__________________
(Offline)
 
Ответить с цитированием
Старый 18.12.2012, 10:08   #6
Platon
Знающий
 
Регистрация: 04.08.2006
Адрес: Россия
Сообщений: 297
Написано 39 полезных сообщений
(для 70 пользователей)
Ответ: Закрутка объектов

Сообщение от Devilox Посмотреть сообщение
Нет, это не подойдёт. Выяснил, что это можно высчитать с помощью момента импульса, кто-нибудь знает, как?
Физика на пальцах: импульсный движок, вторая страница, в середине. Ну и в целом саму статью почитай.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Devilox (19.12.2012)
Старый 19.12.2012, 20:30   #7
Devilox
ПроЭктировщик
 
Аватар для Devilox
 
Регистрация: 14.01.2012
Адрес: Зеленоград
Сообщений: 192
Написано 5 полезных сообщений
(для 9 пользователей)
Ответ: Закрутка объектов

Статья полезная, но сложновата для моего восприятия. Поскольку я ещё не учусь в ВУЗе, понять эту тему я смогу(надеюсь), основываясь только на простые физические формулы, т. к. эти "моменты" не включены в школьную программу, и я пока не очень их понимаю. Разобрал только то, что L(момент импульса) = I(момент инерции) * w(угловая скорость), а остальное в интернете, в том числе и на Википедии, всё как-то смутно описано. Кто-нибудь может объяснить, как и что подставлять в это уравнение?
__________________
(Offline)
 
Ответить с цитированием
Старый 20.12.2012, 20:00   #8
Devilox
ПроЭктировщик
 
Аватар для Devilox
 
Регистрация: 14.01.2012
Адрес: Зеленоград
Сообщений: 192
Написано 5 полезных сообщений
(для 9 пользователей)
Ответ: Закрутка объектов

Я тут кое-что вывел по примерам задач о пуле, застрявшей в бруске(вращение куба только в одной плоскости):

mv1 = (M + m) * v2, где
M - масса куба
m - масса пули
v1 - скорость пули
v2 - скорость системы после застревания пули

L(момент импульса системы) = (M + m) * v2 * r, где
r - перпендикуляр из центра куба к вектору импульса системы

I(момент инерции) = (M + m) * 1/6 * d^2 * W, где
сама формула - табличное значение момента инерции для куба
d - ребро
W - угловая скорость

Отсюда:
W = (6 * m * v1 * r) / (M * d^2)

Подскажите, что не так...
__________________
(Offline)
 
Ответить с цитированием
Старый 30.12.2012, 09:59   #9
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Закрутка объектов

Мне кажется надо делать как в движке.

Тебе должно быть известно:
центр объекта
размер объекта (типа радиуса вокруг объекта)
масса тела
нормаль к месту приложения силы.

Берешь нормаль и сравниваешь ее с центром объекта. Чем ближе нормаль проходит к центру - тем сильнее объект будет двигаться. Чем дальше от центра - тем больше крутиться.

А пережёвывать это вообще не охото.
Реально лучше библиотеку подцепить. Работают они быстро!
__________________
(Offline)
 
Ответить с цитированием
Старый 30.12.2012, 20:27   #10
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Закрутка объектов

у тела есть масса и моменты инерции относительно трех осей.

дальше определяем линию действия силы, проецируем силу на прямую связывающую центр массы тела и место куда приложена сила.
потом делим спроецированную часть силы на массу, это число есть ускорение которое тело приобретает под действием силы, и направление этого ускорения совпадает с вектором соединяющим точку куда сила приложена и центр масс.

Дальше уже считаюся моменты которые эта сила создает. Обычно моменты инерции посчитаны для трех осей, соответственно сила проецируется на эти оси потом получившиеся части силы умножаются на плечи до оси и делятся на соответствующие моменты инерции в результате получается три угловых ускорения. Тоже самое верно и для передачи импульсов.

без сумм моментов по всем трем осям и сумм сил не обойтись однака.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Devilox (07.01.2013)
Старый 07.01.2013, 13:54   #11
Devilox
ПроЭктировщик
 
Аватар для Devilox
 
Регистрация: 14.01.2012
Адрес: Зеленоград
Сообщений: 192
Написано 5 полезных сообщений
(для 9 пользователей)
Ответ: Закрутка объектов

Впринципе, у меня почти получилось сделать вращение вокруг вертикальной оси, но там в расчётах геометрия какая-то стрёмная(я вычислял длину радиус-вектора для момента импульса), да и вращение тоже странное(я не делал подкрутки, т.е каждое новое столкновение с шариком задаёт кубу новое вращение, останавливая предыдущее). Если это опустить, то проблема состоит в том, что подкручивать можно только те грани куба, которые перпендикулярны оси Z(игрок изначально стоит перпендикулярно оси X). Может кто знает, как обобщить формулы вращения вокруг вертикальной оси с разных сторон? Или условия надо поставить...
Вложения
Тип файла: rar rotate.rar (262.8 Кб, 484 просмотров)
__________________
(Offline)
 
Ответить с цитированием
Старый 07.01.2013, 20:14   #12
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,019
Написано 2,312 полезных сообщений
(для 5,349 пользователей)
Ответ: Закрутка объектов

Сообщение от Devilox Посмотреть сообщение
Впринципе, у меня почти получилось сделать вращение вокруг вертикальной оси, но там в расчётах геометрия какая-то стрёмная(я вычислял длину радиус-вектора для момента импульса), да и вращение тоже странное(я не делал подкрутки, т.е каждое новое столкновение с шариком задаёт кубу новое вращение, останавливая предыдущее). Если это опустить, то проблема состоит в том, что подкручивать можно только те грани куба, которые перпендикулярны оси Z(игрок изначально стоит перпендикулярно оси X). Может кто знает, как обобщить формулы вращения вокруг вертикальной оси с разных сторон? Или условия надо поставить...
Посмотрел пример, посмотрел... Я бы на твоём месте воспользовался библиотекой физики.
(Offline)
 
Ответить с цитированием
Старый 08.01.2013, 00:48   #13
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений
(для 2,828 пользователей)
Ответ: Закрутка объектов

Сообщение от Arton Посмотреть сообщение
Посмотрел пример, посмотрел... Я бы на твоём месте воспользовался библиотекой физики.
Да что же ты пристал с библиотеками то? Человек хочет разобраться что и как работает, может в будущем напишет свой собственный физ.двиг который если и не порвёт всякие физиксы и буллиты, то будет очень хорошим. Использовать готовенькое может каждый, ты напиши своё попробуй.

зыЖ Говорю без доли сарказма!
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.

Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2


Скачать Doom 2D: Remake v0.3.8a
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо St_AnGer за это полезное сообщение:
Arton (08.01.2013), Nex (08.01.2013)
Старый 08.01.2013, 01:09   #14
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,019
Написано 2,312 полезных сообщений
(для 5,349 пользователей)
Ответ: Закрутка объектов

Сообщение от St_AnGer Посмотреть сообщение
Да что же ты пристал с библиотеками то? Человек хочет разобраться что и как работает, может в будущем напишет свой собственный физ.двиг который если и не порвёт всякие физиксы и буллиты, то будет очень хорошим. Использовать готовенькое может каждый, ты напиши своё попробуй.

зыЖ Говорю без доли сарказма!
Да ладно, чего ты на меня так набросился, не я один про двиг предлагал.

А самопальная физика ничё так, годная, шарик правда замедленный очень...
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 19:33.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com