Załóżmy, że mam prymityw fizyki, którą nazywam „drutem” owiniętym wokół środowiska 2D (jak opisano w tym pytaniu ).
Oto ilustracja tego, jak może to wyglądać:
Na przykładowej ilustracji: Pudełko jest ciągnięte do góry (podtrzymywane) przez drut, a pudełko ciągnie drut w dół. Obiekt na sprężynie jest popychany przez drut w dół, ale również popycha drut w górę.
Chociaż nie zastanawiałem się jeszcze, jak to zaimplementować, załóżmy, że drut będzie się swobodnie przesuwał po punktach, w których jest owinięty.
W symulacji fizyki 2D (tj. Opartej na ramce), jak obliczyć siły (lub impulsy) przyłożone do obiektów, które są przymocowane lub owinięte takim drutem?
Jak wspomniałem w pierwszym pytaniu , wyobrażam sobie, że jeśli jedynym niestatycznym obiektem „na” drucie była masa na końcu, wówczas siła byłaby identyczna z połączeniem o stałej długości między masą a punktem przed nią to na drucie.
źródło
F = T * cos(angle between wire and spring axis)
. Jaki dokładnie kąt? Ponadto: nie sądzę, aby (w symulacji) istniał rozsądny sposób, aby drut „wiedział”, że do tego obiektu jest przymocowana sprężyna.Zdecydowanie doceniam twoją frustrację związaną z drutowymi wątkami, jest to trudny problem do rozwiązania. Nigdy nie kolizja działała idealnie, ale symulacja ograniczeń jest zdecydowanie wykonalna i prosta.
Wiązanie drutu jest w rzeczywistości prawie identyczne z ograniczeniem regularnej odległości. Zamiast dwóch punktów wiązania masz n + 1 dla drutu z n segmentów, po jednym dla każdego wierzchołka - w punktach końcowych jakobian jest identyczny z ograniczeniem odległości (tj. Jest to coś w rodzaju d / | d | gdzie d jest wektorem między punktami), a dla węzłów wewnętrznych jakobian jest czymś w rodzaju (a / | a | - b / | b |), gdzie aib są wektorami od węzła do sąsiednich węzłów. (Przepraszam, minęło kilka lat, odkąd dotknąłem tego ...)
Nie można go sfałszować a-la „tylko ostatni odcinek jest dynamiczny”, ponieważ, jak w twoim przykładzie, obiekty mogą oddziaływać z innymi segmentami, ale musisz tylko symulować masy na końcach liny - wewnętrznie lina może być bezmasowym. Impulsy ograniczenia obliczone w każdym węźle należy zastosować do obiektu, który koliduje w tym węźle.
Oto kilka powiązanych dokumentów:
Pierwsze trzy są stosunkowo nowe i powinny bardzo pomóc. Strona 75 dolnego dokumentu opisuje ograniczenie „multibaru”, które jest zasadniczo drutem.
Powodzenia :)
Raigan
źródło
Podstawową ideą jest to, że długość liny pozostaje taka sama. Jeśli zostanie popchnięty, musisz utworzyć tam „punkt podziału”. Następnie lina określa, po której stronie jest przymocowana, ponieważ nie może „rosnąć” w tym kierunku. Ponieważ jest przymocowany do czegoś po prawej stronie, kawałek liny po lewej stronie stanie się krótszy, a kawałek między punktem podziału a punktem zaczepienia będzie nieco dłuższy. Następnie, jak powiedział Niall, obliczyć napięcie drutu. Chciałbym to zrobić, aby obliczyć napięcie każdego „kawałka” liny. Następnie możesz użyć tego do ustalenia sił.
Mam nadzieję że to pomoże.
źródło