forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=109)
-   -   Деформация, связи, физика (http://forum.boolean.name/showthread.php?t=4470)

Noah 17.09.2007 00:31

Деформация, связи, физика
 
Собственно: нужен совет знающих людей (оговорюсь, речь о 2d; реализация хоть через 3d, всёравно, главное работало б)(PS есть такая занимательная Bridge, кто знает):
1. необходимость реализовать взаимодействующую систему тел - возможно ли то что опишу? Вспомните уроки физики - кристалическую решётку (для простоты рассмотрим 2х2 - кубик). В модели всё состоит из точек(масса) и отрезков. Собственно обьекты - это кристалы. Точки соединённые отрезками фиксированной!(пока-что) длинны. Необходим рассчёт и отрисовка такой решётки, её внутренней динамики(если она вдруг завибрирует как желе), перемещение, деформация, возможно разрушение .. от приложенных внешних сил на какие-либо узлы-точки этой конструкции.
2. дальше-больше: столкновения подобных структур - проверка коллизии узлов с линиями. и тут варианты - либо неупругое\упругое столкновение, либо деформация, либо разрушение.
3. что тут лучше подойдёт BlitzMax или Blitz3D? и если использовать какие либо физические движки (я пока только читаю о них по вашим форумам и мануалкам)
Предисловие: когда-то давно.. после экзамов в инст.. после длительных скитаний от школьного паскаля, через собственный asteroids и lander, через hl1 и его WorldСraft, через 3dKonstructor(игры drag&drop`ом делать) и DarkBasic, пришёл я к 3dsmax и Blitz3D.. и чувствую вышел в люди. В те времена погиб не один спрайт и полигон, а оперативка трещала по швам и жаловалась свопу на мои автогенеренные уровни. Потом был институт ... много чего было ... :4to: сейчас институт закончился, освоены matlab и другие ругательные пакеты статистики и мат моделирования. Но из головы не выходят эти милые ручные спрайты и полигоны. А сейчас облазив кучу инета ничего вразумительного не нашёл.

Если у кого-то есть примеры реализации (даже отстранённые), литература, линки, мысли как сделать те или иные кусочки, может математика или физика ... Всё что может подсказать куда двигаться, буду считать реальным программером за помощь в решении проблемы! Ребят помогите плиз!! :SOS: :wallbash:

LD 17.09.2007 00:45

Re: Деформация, связи, физика
 
Итак, представляем кубик в виде массива мельчайших частиц. При воздействии на внешнюю оболочку куба сдвигаем верхние частицы по осям по формуле (сила/плотность)*коэффициент деформации, далее по вектору приложенной силы определяем необходимый сдвиг на частичы, следующие за внешними частицами, задействованными в деформации и прикладываем к ним силу, передавшеесю от внешнего слоя частиц по той же формуле (беря за силу полученное число в прошлом просчете), определяем сдвиг решетки, рассчитываем силу для следующих частиц. Если сила, приложенная к частице больше силы связи частиц, то разрываем связи. Это только мои предположения, так что строго не судить :-)

moka 17.09.2007 15:03

Re: Деформация, связи, физика
 
Noah, как понял, то реализация будет на отрезках? Есть возмонжость делать полигональную коллизию (избежишь проникновения в нутрь объекта, т.к. отрезки они только по контуру объекта). Но коллизия по полигонам ресурсоёмче и сложнее. Есть уже интерестный 2Д физ движёк, непомню как называется. Но там деформация не реализована.
Я бы сделал на отрезках:
Сперва нужно реализовать коллизию между отрезками.
Далее, есть объект, он состоит из отрезков, связанных в точках, и есть центр массы (при реализации одиночных отрезков она будет по середине линии), центр тяжести = общая арифметическая координат всех точек объекта, далее уже отдалённо, могу ошибиться, т.к. на отрезках коллизию не делал, но там будет очень интерестный способ взаимодействия, ведь двигать нужно точки, поэтому у каждой точки есть 2 парраметра nx и ny - это координаты смещения, на ny действует гравитация. Так-же их изменения при коллизии, будет очень интерестная задача, что и есть главная зацепка, тоесть у нас же не просто перемещение всего объекта, а и кручение, тут игрет роль, угол коллизии к отрезку между 2 точками у объекта, угол относительно этой точки, и центра объекта, если есть материалы, то и параметры эластичности и трения, а так-же скорость точек соприковаемых отрезков и массы объектов. В общем тут нужно потихонечку с меньшего лезть в эти дебри, и очень чётко продумывать, чтобы не загнаться в тупик.
В общем это в полне реализуемо, но требуется не маленькие способности логического и алгебро-геометрического мышления.


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

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