2013-06-13 16 views
5

Proszę sprawdzić załączony obraz to rodzaj huśtawki. Ale jak z obrazu, czarne ciała mają taką samą gęstość. A poziomy prostokąt jest połączony z trójkątem za pomocą połączenia "Revolute". Ale wciąż nie działa żadna sugestia. w obecnej sytuacji musi być zrównoważony.Balance box2d objects

enter image description here

+0

Myślę, że trzeba wyłączyć grawitację, ponieważ kod może być użyty - (void) akcelerometr: (UIAccelerometer *) akcelerometr didAccelerate: (UIAcceleration *) przyspieszenie; – iphonic

+0

Żaden akcelerometr nie jest włączony człowiek. a jeśli grawitacja jest wyłączona w box2d, to jak będzie wyglądać naturalnie. :-) –

Odpowiedz

0

Ze względu na małe nierównowagi w układzie spowodowane ograniczeniami zmiennoprzecinkowej precyzji itp, to jest wysoce prawdopodobne, że będzie to kiedykolwiek równowagi w środku wiarygodnie (tak jak w prawdziwym życiu). Jedną rzeczą, którą można wypróbować, jest nadanie wiązki pewnej kątowej amortyzacji, co sprawiłoby, że mniej łatwo byłoby się obracać, aby szybciej zwolnić i spać wcześniej. To może wystarczyć, by odpocząć, nie upadając na jedną lub drugą stronę.

+0

Każdy inny sposób tworzenia? becoz obecnie również szybko spać, czego nie chcę. Potem próbowałem zmienić ciało, żeby nie spać, a potem cały świat B2World, ale nadal nie działa. –

+0

Wątpię w to. O ile nie może spać, będzie przechylać się na jedną stronę. Może mógłbyś zastosować mały moment obrotowy, aby utrzymać go na poziomie. – iforce2d

0

Nie sądzę, że jest to problem precyzji zmiennoprzecinkowej. Przynajmniej nie może tak szybko wyglądać. O ile mi wiadomo Box2D rozwiązuje kontakty (w tym kontakty spoczynkowe) jeden po drugim. Jest znacznie szybszy niż rozwiązanie równoczesnego kontaktu, ale mniej precyzyjne w tym samym czasie, ponieważ rozwiązanie jednego kontaktu może wpłynąć na pozostałe.

Chciałbym spróbować dodać silnik z małym maksymalnym momentem obrotowym do przegubu obrotowego i kontrolować jego prędkość, aby zrównoważyć system.

+0

bez powodzenia z tym zbyt wypróbowany :( –