Autor Wątek: Symulacja śmigłowca 2D  (Przeczytany 1482 razy)

Offline taki_tam

  • Użytkownik

# Marzec 23, 2009, 23:26:43
Yo! ; ) Dawno nie pisałem bo hasło mi znikło ;P

Napisałem sobie silnik ciał sztywnych 2D. Chcę symulować lot śmigłowca(podstawię za niego boxa AB w silniku fiz.)
I nie wiem do końca jak się za to zabrać. Mój schemat wygląda tak(jakby co to podajcie jakiś konkretniejszy, jak
Wy byście to zrobili bo to jedyne co mi do głowy przychodzi):
- strzałki góra/dół zmiana obrotów silnika wirnika głownego
- liczę sobie powierzchnie łopat wirnika, a z tego siłę ciągu.
- strzałki lewo/prawo zmieniam obrót ciała sztywnego(śmigłowca), tworzę macież 2x2 z orientacji ciała po czym
  mnożę wektor siły ciągu przez tą macierz i pięknie otrzymuje siłe którą przykładam do ciała.

Robiłem tak dla symulacji rakiety(w sumie lądownika, coś jak w grze Lander Reloaded <- polecam zwrócić uwagę ; ] )
i wyszło identycznie jak w wymienionej wyżej grze.

To jakby co to piszcie swoje pomysły. Chcę w miarę możliwości zachować duży realizm ale już bez przesady ;]

Pozdrawiam! ;)

Edit: Jak komuś się nie chce zasysać tej gry to moge dać demko z mojego silnika fizycznego z identycznym modelem symulacji.
« Ostatnia zmiana: Marzec 23, 2009, 23:41:47 wysłana przez taki_tam »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Yarek

  • Użytkownik

# Marzec 24, 2009, 00:38:24
Ogólne założenie jest takie, że siłą działająca od wirnika działa na śmigłowiec w miejscu jego"zaczepienia".
Obroty śmigła zazwyczaj są w miarę stałe zmieniasz jedynie kąt natarcia łopat (no i wtedy liczysz z powierzchnie i stąd ciąg).
Możesz dodać sterownie obrotami ale zwiększa to skomplikowanie i obsługę.
Strzałki lewo prawo: zmieniasz kąt zaklinowania płata (nie całego śmigłowca tylko wirnika względem śmigłowca) - wówczas siła działa nie tylko w pionie ale również w poziomie (co prowadzi do obrotu śmigłowca).

Jeśli nic nie pokręciłem to otrzymasz w miarę realistyczną symulację śmigłowca ;). Możesz dodać efekt przyziemny w zawisie (czyli wpływ ziemi gdy śmigłowiec znajduje się bardzo nisko).
Rozumiem, że śmigła ogonowego nie symulujesz?? ;)

Offline taki_tam

  • Użytkownik

# Marzec 24, 2009, 00:55:24
Cytuj
Rozumiem, że śmigła ogonowego nie symulujesz?? Wink
W grze Side-scrolling raczej nie ma to sensu  :D

A co do regulacji kąta łopat wirnika, właśnie chciałem tego uniknąć. Preferowałem raczej mniej skomplikowany model symulacji.
Ale jutro wypróbuję mój sposób i Twój, obczaję efekty i jak nie będzie jakiejś znacznej różnicy to zastosuje mój sposób, bo prostszy.  :P
Dodam, że śmigłowiec duży nie będzie. Na razie w planach zakładam 128x48 pix.

Jeśli ktoś ma jeszcze jakieś inne pomysły to będę wdzięczny, ewentualnie wyraźcie opinię na temat tych dwóch przykładów.

Pozdrawiam! ;)

Offline Kos

  • Użytkownik
    • kos.gd

# Marzec 24, 2009, 21:59:47
Ym... Jeśli helikopter wisi nieruchomo w powietrzu, to by ruszyć, pochyla się do przodu. Ale "czym" on się właściwie pochyla? Przecież nie łopatkami, skoro stoi w miejscu. Ma gdzieś ukryte, malutkie trzecie śmigło na takie okazje, usytuowane prostopadle do jego osi Z :)?

Offline Charibo

  • Redaktor

# Marzec 24, 2009, 23:02:55
Ym... Jeśli helikopter wisi nieruchomo w powietrzu, to by ruszyć, pochyla się do przodu. Ale "czym" on się właściwie pochyla? Przecież nie łopatkami, skoro stoi w miejscu.
Nie czytałem całego wątku, ale jeśli pytasz o helikopter w realu, to jest jak mówisz - pochyla się cały wirnik w odpowiednią stronę. :) Ogólnie system sterowania śmigłowcami jest dosyć skomplikowany (skok i szybkość obrotów śmigła ogonowego, skok i szybkość obrotów wirnika, pochylanie wirnika...) :) Sam niestety nie mam pojęcia jak to zasymulować fizycznie, z resztą nie interesowałem się sprawą.

A żeby nie robić kompletnego offtopu, to pojawiały już się takie tematy:
http://forum.warsztat.gd/index.php/topic,9366.0.html
http://forum.warsztat.gd/index.php/topic,3674.0.html
« Ostatnia zmiana: Marzec 24, 2009, 23:05:57 wysłana przez Charibo »

Offline taki_tam

  • Użytkownik

# Marzec 24, 2009, 23:09:07
No to jest właśnie to moje uproszczenie żeby bezpośrednio ("ręcznie") zmienić orientację ciała i wtedy wektor
przemieszczenia przemnożyć przez macierz orientacji.

Żeby było jaśniej, łap demko z mojego silniczka z symulacją lądownika:
http://kompustelnik.unit1.pl/down/UnPhysX2D_Demo1.rar

Pozdrawiam! ;)

Edit:
@Charibo: Mi chodzi o symulację 2D z widokiem od boku (side-scrolling). Ale thx za ten drugi link(się nadaje).

Edit2:
Kurde, zapomniałem :P Lądownikiem steruje się w następujący sposób:
- strzałka w dół - załączenie silnika
- strzałka w lewo - obrót w prawo\Tak dziwnie bo chodziło mi o to że np. lewa strzałka odpala silnik "po lewej" stronie lądownika(obrót w prawo)
- strzałka w prawo - obrót w lewo/
« Ostatnia zmiana: Marzec 24, 2009, 23:21:21 wysłana przez taki_tam »