forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Закрутка объектов (http://forum.boolean.name/showthread.php?t=17627)

Devilox 14.12.2012 08:51

Закрутка объектов
 
Мы заставляем объекты двигаться, прикладывая к ним силу. Если сила направлена ровно, то тело движется без вращения, а если, например, приложить силу к какому-нибудь углу параллелепипеда, то он будет двигаться, вращаясь. Можно ли как-нибудь реализовать зависимость скорости и направления от точки приложения?
P.S. Мне кажется, что надо использовать явление момента силы, но вот только как...

Arton 14.12.2012 09:14

Ответ: Закрутка объектов
 
Может лучше использовать готовый движок физики? Самый простой и бесплатный вариант это ODE.

Raion 14.12.2012 09:14

Ответ: Закрутка объектов
 
Для этого есть физические библиотеки.
http://forum.boolean.name/showthread.php?t=14511

impersonalis 14.12.2012 12:32

Ответ: Закрутка объектов
 
Теорема Гюйгенса-Штейнера?

Devilox 17.12.2012 20:46

Ответ: Закрутка объектов
 
Нет, это не подойдёт. Выяснил, что это можно высчитать с помощью момента импульса, кто-нибудь знает, как?

Platon 18.12.2012 10:08

Ответ: Закрутка объектов
 
Цитата:

Сообщение от Devilox (Сообщение 246780)
Нет, это не подойдёт. Выяснил, что это можно высчитать с помощью момента импульса, кто-нибудь знает, как?

Физика на пальцах: импульсный движок, вторая страница, в середине. Ну и в целом саму статью почитай.

Devilox 19.12.2012 20:30

Ответ: Закрутка объектов
 
Статья полезная, но сложновата для моего восприятия. Поскольку я ещё не учусь в ВУЗе, понять эту тему я смогу(надеюсь), основываясь только на простые физические формулы, т. к. эти "моменты" не включены в школьную программу, и я пока не очень их понимаю. Разобрал только то, что L(момент импульса) = I(момент инерции) * w(угловая скорость), а остальное в интернете, в том числе и на Википедии, всё как-то смутно описано. Кто-нибудь может объяснить, как и что подставлять в это уравнение?

Devilox 20.12.2012 20:00

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

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)

Подскажите, что не так...

burovalex 30.12.2012 09:59

Ответ: Закрутка объектов
 
Мне кажется надо делать как в движке.

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

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

А пережёвывать это вообще не охото.
Реально лучше библиотеку подцепить. Работают они быстро!

dsd 30.12.2012 20:27

Ответ: Закрутка объектов
 
у тела есть масса и моменты инерции относительно трех осей.

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

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

без сумм моментов по всем трем осям и сумм сил не обойтись однака.

Devilox 07.01.2013 13:54

Ответ: Закрутка объектов
 
Вложений: 1
Впринципе, у меня почти получилось сделать вращение вокруг вертикальной оси, но там в расчётах геометрия какая-то стрёмная(я вычислял длину радиус-вектора для момента импульса), да и вращение тоже странное(я не делал подкрутки, т.е каждое новое столкновение с шариком задаёт кубу новое вращение, останавливая предыдущее). Если это опустить, то проблема состоит в том, что подкручивать можно только те грани куба, которые перпендикулярны оси Z(игрок изначально стоит перпендикулярно оси X). Может кто знает, как обобщить формулы вращения вокруг вертикальной оси с разных сторон? Или условия надо поставить...

Arton 07.01.2013 20:14

Ответ: Закрутка объектов
 
Цитата:

Сообщение от Devilox (Сообщение 248579)
Впринципе, у меня почти получилось сделать вращение вокруг вертикальной оси, но там в расчётах геометрия какая-то стрёмная(я вычислял длину радиус-вектора для момента импульса), да и вращение тоже странное(я не делал подкрутки, т.е каждое новое столкновение с шариком задаёт кубу новое вращение, останавливая предыдущее). Если это опустить, то проблема состоит в том, что подкручивать можно только те грани куба, которые перпендикулярны оси Z(игрок изначально стоит перпендикулярно оси X). Может кто знает, как обобщить формулы вращения вокруг вертикальной оси с разных сторон? Или условия надо поставить...

Посмотрел пример, посмотрел... Я бы на твоём месте воспользовался библиотекой физики.

St_AnGer 08.01.2013 00:48

Ответ: Закрутка объектов
 
Цитата:

Сообщение от Arton (Сообщение 248609)
Посмотрел пример, посмотрел... Я бы на твоём месте воспользовался библиотекой физики.

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

зыЖ Говорю без доли сарказма!

Arton 08.01.2013 01:09

Ответ: Закрутка объектов
 
Цитата:

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

зыЖ Говорю без доли сарказма!

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

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


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot