Programowanie silnika Fizyki w C

Witam, szukałem na forum, ale nie znalazłem nic na ten temat Google odsyła do innych podobnych tematów, które nie rozwiązują tego pytania. Mianowicie jak zaprogramoać silnik fizyki w C? Uwzgledniając przestrzeń x,y,z oraz stałe…

Zadanie jest ambitne, ale powinnem sobie poradzić. Z strony fizyki i obliczeń ogarnałem wszystkie istotne oddziaływania dotykające nas na codzień :wink: ale jest problem z tego impletancją. Byłbym wdzieczny za linki do jakiś Opensourcowych projektów, lub podzielenie sie swoimi postrzeżeniami.

Dlaczego mam wrażenie, że kłamiesz?

 

Tak jak każdy innym języku. Modelujesz równania fizyczne, analogiczne do tych jakie oddziałują na nas na co dzień. Umiesz chociaż pochodne i całki rozwiązywać na komputerze?

 

Polemizowałbym…

 

Dobrze. Zapisz mi równania na to jak będzie się zachowywać kwadratowe prześcieradło o boku x zrobione z jakiegoś włókna gdy b będę z nim biegł w normalnym ciśnieniu atmosferycznym z pędkością V, trzymając je w pewnym punkcie (a,b) ręką.

 

Oczywiście, że jest. Przecież nie umiesz nic z powyższego.

Jeśli pokażesz co zrobiłeś w praktyce i z czym masz problem, ktoś może pomoże.

 

Może zacznij sobie od czegoś prostego. Ruch wahadła matematycznego, staczanie się z równi pochyłej przy zaniedbywalnym tarciu, flaga na wietrze, ruch planet.

Programowałem już ruch planet, i rownie pochyła. A jak chcesz do moge dać ci screeny notatek z zeszytu w którym to rozrysowuje. Z punkty fizczno/matematycznego umiem, ale jak przeniesć na komputer?

 

Mam zamiar uwzglednić w nim:

grawitacje, opór powietrza, tarcie, optyke(światłocień*)

 

Całkować, operować na pochodnych i logarytmach umiem.

Więc teorie trzeba jakoś zamienić w kod.

To nie rozumiem, z czym masz problem, jeśli umiesz staczać ciało po równi to musiałeś zaprogramować grawitację. Zaprogramuj sobie rzut ukośny z oporem powietrza, to tam wykorzystasz i grawitację i opór powietrza (czyli też tarcie). Jedyne czego tu nie użyjesz to światło, ale to można zrobić np. śledzeniem promieni, a w momencie zderzenia z ciałem zastosować wzór, który moduluje intensywność w zależności od kąta padania. Podejrzewam że efekt odbicia światła cię nie interesuje w początkowej fazie, więc powinno wystarczyć.

Problem jest w zderzeniu np. szescian spadając zachacza o inny sześcian, jak wykrywać kolizje i odbicia?

Podobna “fizyka do minecrafta” na początek by wystarczyła

Rzut poziomu = teoria AngryBirds :stuck_out_tongue_winking_eye:

Jak poszukasz w google wykrywanie kolizji to coś znajdziesz, naprawdę. Głownie będzie to dla 2D, ale po prostu wystarczy te wzory uogólnić do wyższego wymiaru.

Wielkie dzięki za link, na start wystarczy. Głównie mam zamiar symulować zderzenia szescianów. Jeszcze ogarne architekture nowego środowiska (grunt, tarcie, zasade zachowania energi i pędu). Aha moze wiesz jak można symulować wiatr, oraz pophniecie(ciało a uderza w b, popyhając je) ?

Ok. To więc ta litera w kształcie podobnym do U, powinna spelniać 0,16 =< U =< 0,25.

Wiecej niz 0, 25 symulacja zbytnioskacze i jest nie dokładna a mniej niz 0,016 za bardzo się ślimaczy.

 

Równie pochyłą napisałem sam, a układ planetarny poprafił mi kumpel, użył bardziej zaawansowanej

metody dla symulowanie ruchu “postępowego” niż metoda Eulera.

 

 

 

Dzięki :smiley: