Spisu treści:
- Krok 1: Symulacja dwuwymiarowa
- Krok 2: Przeniesienie go do 3 wymiarów
- Krok 3: Korzystanie z prawdziwych planet
- Krok 4: Końcowe przemyślenia i komentarze
Wideo: Symulacja Układu Słonecznego: 4 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
W ramach tego projektu postanowiłem stworzyć symulację wpływu grawitacji na ruch ciał planetarnych w Układzie Słonecznym. Na powyższym filmie / ciało Słońca jest reprezentowane przez sferę z siatki drucianej, a planety są generowane losowo.
Ruch planet opiera się na prawdziwej fizyce, prawie powszechnej grawitacji. To prawo określa siłę grawitacyjną wywieraną na masę przez inną masę; w tym przypadku Słońce na wszystkich planetach, a planety na sobie.
W tym projekcie wykorzystałem Processing, środowisko programistyczne oparte na javie. Użyłem również przykładowego pliku Processing, który symuluje grawitację planet. Wszystko, czego potrzebujesz do tego, to oprogramowanie do przetwarzania i komputer.
Krok 1: Symulacja dwuwymiarowa
Zacząłem od obejrzenia kilku filmów o tym, jak kodować to, co Dan Shiffman stworzył na swoim kanale YouTube, The Coding Train (część 1/3). W tym momencie pomyślałem, że użyję rekurencji do wygenerowania Układu Słonecznego, podobnie jak Shiffman używa tylko praw fizyki.
Stworzyłem obiekt planety, który miał „planety potomne”, które z kolei miały również „planety potomne”. Kod do symulacji 2D nie został ukończony, ponieważ nie miałem świetnego sposobu na symulowanie sił grawitacyjnych dla każdej planety. Odwróciłem się od tego sposobu myślenia, w kierunku opartym na wbudowanym przykładzie przetwarzania przyciągania grawitacyjnego. Problem polegał na tym, że musiałem obliczyć siłę grawitacyjną wszystkich innych planet na każdej planecie, ale nie mogłem wymyślić, jak łatwo wyciągnąć informacje z pojedynczej planety. Po zobaczeniu, jak robi to samouczek Przetwarzanie, zdałem sobie sprawę, jak to zrobić, używając zamiast tego pętli i tablic
Krok 2: Przeniesienie go do 3 wymiarów
Korzystając z przykładowego kodu dla Planetary Attraction, który jest dostarczany wraz z przetwarzaniem, uruchomiłem nowy program do symulacji 3D. Główna różnica dotyczy klasy Planet, gdzie dodałem funkcję przyciągania, która oblicza siłę grawitacyjną między dwiema planetami. To pozwoliło mi zasymulować działanie naszego Układu Słonecznego, w którym planety przyciągają nie tylko Słońce, ale także każda inna planeta.
Każda planeta ma losowo wygenerowane cechy, takie jak masa, promień, początkowa prędkość orbitalna itp. Planety są stałymi kulami, a Słońce jest kulą z siatki drucianej. Dodatkowo lokalizacja kamery obraca się wokół środka okna.
Krok 3: Korzystanie z prawdziwych planet
Po opracowaniu struktury symulacji 3D użyłem Wikipedii, aby znaleźć rzeczywiste dane planetarne dla naszego Układu Słonecznego. Stworzyłem tablicę obiektów planet i wprowadziłem prawdziwe dane. Kiedy to zrobiłem, musiałem zmniejszyć wszystkie cechy. Kiedy to zrobiłem, powinienem był wziąć rzeczywiste wartości i pomnożyć przez współczynnik, aby zmniejszyć wartości, zamiast tego zrobiłem to w jednostkach ziemskich. To znaczy wziąłem stosunek wartości Ziemi do wartości innych obiektów, na przykład Słońce ma 109 razy większą masę niż Ziemia. Jednak spowodowało to, że rozmiary planet wydawały się zbyt duże lub zbyt małe.
Krok 4: Końcowe przemyślenia i komentarze
Gdybym miał kontynuować pracę nad tą symulacją, dopracowałbym/ulepszyłbym kilka rzeczy:
1. Najpierw przeskalowałbym wszystko równomiernie, używając tego samego współczynnika skalowania. Następnie, aby poprawić widoczność orbit, dodałbym ślad za każdą planetą, aby zobaczyć, jak każdy obrót ma się do poprzedniego
2. Kamera nie jest interaktywna, co oznacza, że część orbit znajduje się poza ekranem, „za osobą” oglądającą. Istnieje biblioteka kamer 3D o nazwie Peazy Cam, która jest używana w części 2 serii wideo Coding Train na ten temat. Ta biblioteka pozwala widzowi obracać, przesuwać i przybliżać kamerę, aby mogli śledzić całą orbitę planety.
3. Wreszcie, planety są obecnie nie do odróżnienia od siebie. Chciałbym dodać „skórki” do każdej planety i Słońca, aby widzowie mogli rozpoznać Ziemię i tym podobne.
Zalecana:
Zaprojektuj swoją płytkę drukowaną za pomocą układu Sprint 2020 z nowymi aktualizacjami: 3 kroki
Zaprojektuj swoją płytkę drukowaną za pomocą układu Sprint 2020 z nowymi aktualizacjami: Większość miłośników elektroniki tworzy obwody elektroniczne przy użyciu różnych metod. czasami musimy wykonać płytkę drukowaną, aby uzyskać odpowiednią moc wyjściową i zredukować szumy i kompaktowe wykończenie. w dzisiejszych czasach mamy dużo oprogramowania do projektowania własnej płytki drukowanej. Ale problem jest najbardziej
Wskaźnik poziomu wody przy użyciu układu ULN 2003 IC: 4 kroki
Wskaźnik poziomu wody przy użyciu ULN 2003 IC: Przelewanie się wody ze zbiornika górnego jest problemem dla każdego iw każdym gospodarstwie domowym. To, wraz z marnotrawstwem energii elektrycznej, powoduje również duże marnotrawstwo wody, a wraz z uchwalaniem nowych przepisów marnowanie wody nawet na przepełnieniu zbiornika może być karane
Symulacja sygnału kolejowego: 4 kroki
Symulacja sygnalizacji kolejowej: Sygnalizacja świetlna dla kolei.(Symulacja rzeczywistości)Proste wyjaśnienie kodu:Kod pozwala na ciągłe odczuwanie pociągów. Jeśli pociąg ma przejeżdżać przez wybrany odcinek torów, sygnalizacja świetlna zmieni kolor na czerwony, ostrzegając innych
Symulacja macek meduzy: 4 kroki
Symulacja macek meduzy: symulacja macek meduzy
Solidworks: Statyczna symulacja termiczna: 4 kroki
Solidworks: Statyczna symulacja termiczna: Ten instruktaż pokazuje, jak wykonać prostą statyczną analizę termiczną w Solidworks