Symulacja łańcucha - kolizje między ogniwami

0

Chciałbym zasymulować łańcuch w OpenGLu z wykorzystaniem języka C/C++. Aplikacja ma działać w czasie rzeczywistym. Zastanawiam się jak rozpatrywać kolizję pomiędzy poszczególnymi ogniwami, czy są jakieś nieskomplikowane metody, które potrafią o takich kolizjach rozstrzygać. Prosiłbym o jakieś materiały na ten temat.

0

Mam taką książkę, symulacje fizyczne w OpenGl czy jakoś tak. Napisałem zresztą kiedyś coś podobnego, chociaż nie był to łańcuch tylko posegmentowana lina (wynik będzie taki sam), tyle że znajdująca się w bezgrawitacyjnej próżni (ale poprawa tego to tylko dodanie jednej siły).

0

Dzięki kolego, zaopatrzyłem się już w książkę: Grafika, Fizyka, Metody numeryczne i faktycznie modyfikacja przykładu z liną, dobranie odpowiednich parametrów symuluje dość dobrze łańcuch.
Mam jeszcze problem z jedną rzeczą. Napisałem kod wyświetlający pojedyncze ogniwo (przypuśćmy że w kształcie strzałki), skompilowałem go do listy wyświetlania i podczas wyświetlania wywołuję go poleceniem glCallList().
Problem w tym, że chciałbym odpowiednio obracać tę strzałkę, ale nie mogę sobie poradzić z obliczeniem kątów obrotu.
Mam dane współrzędne:
P1(x1, y1, z1) - początek strzałki
P2(x2, y2, z2) - grot strzałki
Domyślam się, że sekwencja wywołań będzie następująca:

glTranslatef( (x1+x2)/2 ,  (y1+y2)/2,  (z1+z2) /2 );  //przesuniecie do srodka strzalki
// obroty...
glCallList(index);

Proszę o pomoc w obliczeniu kątów obrotu i ustaleniu odpowiedniej ich sekwencji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1