Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.18;
Скачать: CL | DM;

Вниз

собсна взаимодействие шариков....   Найти похожие ветки 

 
Morok   (2004-03-19 11:04) [0]

ftp://ross.usinsk.ru/Project1.rar

начал делать физ движек и вот загвоздочка шарики при некоторых условиях в момент столкновения наползают друг на друга (как бы прилипают)
я вобщем понимаю из-за чего это происходит и попытался избавится от этого неприятного момента но, что я только не делал все равно что-то не то.....блин может кому не лень проанализируете кусок кода, как можно уберечься от наползания?:

function TCollider.CollideSphereWithSphere ( S1: TPBodySphere; S2: TPBodySphere ): Boolean;
Var
   D: TVector;
   l: Single;
begin
D := VectorSubtract( S1.P, S2.P );
result := (VectorLength( D ) < (S1.R + S2.R));
end;

procedure TCollider.ReflectSphereBySphere ( S1: TPBodySphere; S2: TPBodySphere );
Var
   N, tmp: TVector;
   Im, Im1, Im2: TVector;
   l, cosa, k, k1, k2: single;
begin
N[3]:=0;tmp[3]:=0;Im1[3]:=0;Im2[3]:=0;Im[3]:=0;

Im1 := S1.V;
Im2 := S2.V;

VectorScale(Im1, S1.M);
VectorScale(Im2, S2.M);

Im := VectorAdd (Im1, Im2);

S1.V := VectorSubtract(Im, Im1);
S2.V := VectorSubtract(Im, Im2);

VectorScale(S1.V, 1/S1.M);
VectorScale(S2.V, 1/S2.M);
end;


 
Morok   (2004-03-22 09:14) [1]

Ну народ! ну хоть что-то скажите типа: "Че пристал?" или "че те надо ваще"

но не молчите! плиз!


 
Ландграф Павел ©   (2004-03-22 19:46) [2]

Morok> ну сервер... скорость скачивания около ~550 байт/сек так и плюнул скачивать... вышли на мыло если хочешь - заценю!


 
Morok   (2004-03-23 09:02) [3]

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

возник другой вопрос, на счет моделирования физики...

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

в голову сразу приходит что можно хранить предидущую координату и проверять пересечение вектора {Pnew, Pold} с плоскостью
и поправлять координаты объекта насильно %) НО насилие не есть гуд....

второй способ, если я правильно понял, я подсмотрел в каком то исходнике, что-то связано со временем точнее с изменением шага интегрирования, вот как это реализуется я не понял.... может кто знает? или кто что подскажет?


 
Morok   (2004-03-23 13:38) [4]

и сразу еще одна трабла, как вообще получить Матрицу положения объекта в пространстве?

я хочу связать графический объект с физическим и соответственно нужно синхронизировать их вращение в пространстве...

не въеду никак с чего начать....


 
Morok   (2004-03-24 11:50) [5]

интересный у меня тут монолог выходит, всем спасибо до всего допер сам!!!!

сделал динамический шаг интегрирования и все терь пучком....


 
Morok   (2004-03-24 16:49) [6]

последний мой вопрос на этом форуме, может хоть кто-то соблаговалит ответить....

есть система связаных частиц, из которых построен куб, как  избежать раскачивания системы?

на сколько я понимаю это происходит из-за погрешности интегрирования, какие методы народ используюет?


 
чебуратор   (2004-03-26 19:01) [7]

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


 
Morok   (2004-03-30 08:17) [8]

все сделал, просто давно не писал ниче все позабыл.....



Страницы: 1 вся ветка

Текущий архив: 2004.07.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.043 c
4-1086243544
Сергей Ю.
2004-06-03 10:19
2004.07.18
Размер клиентской части экрана


1-1088752948
ol
2004-07-02 11:22
2004.07.18
как в графике (chart) перейти в заданную точку


6-1084790249
AndrewK
2004-05-17 14:37
2004.07.18
Загрузка курса валют с РБК


14-1088657607
Vlad Oshin
2004-07-01 08:53
2004.07.18
длинные повторяющиеся сигналы в Award Biose v6?


14-1088184187
VEG
2004-06-25 21:23
2004.07.18
Странно