Главная страница
    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.46 MB
Время: 0.025 c
1-1088804549
killer
2004-07-03 01:42
2004.07.18
Transparent в CheckBox


3-1087851662
DimDim
2004-06-22 01:01
2004.07.18
Упаковать таблицы DBISAM


14-1088671960
Vlad Oshin
2004-07-01 12:52
2004.07.18
У кого нить осталась ветка, где мы стихи писали на паскале?


1-1088691685
r0bert
2004-07-01 18:21
2004.07.18
как мне сваратить это с картинкой


3-1087411300
Timur
2004-06-16 22:41
2004.07.18
Проблема с insert





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский