Istnieje więc wiele zasobów, które można znaleźć za pośrednictwem Google lub korzystając z wyszukiwania tutaj, w jaki sposób proceduralnie wygenerować całą galaktykę. Ale nie mogłem znaleźć żadnego dobrego zasobu na temat generowania układów planetarnych spełniających następujące kryteria:
Systemy nie muszą być dokładnymi symulacjami orbit, ale powinny znajdować się w pobliżu prawdopodobnych orbit. Nie obchodzi mnie żadna symulacja, która by obchodziła, jak system może wyglądać za 200 000 lat, orbity mogą być solidne. Główny problem, przed którym stoję, polega na tym, jak losowo wygenerować system, który można by uznać za wiarygodny. Staje się to szczególnie interesujące, gdy masz układ z gwiazdą podwójną.
Samo losowe tworzenie orbit nie stworzy wiarygodnego systemu, w efekcie powstanie oczywiście niedziałająca orbita. Tak, zdaję sobie sprawę z problemu z ciałem N :), ale to nie pomaga, przynajmniej tak mi się wydaje, rozwiązać problem generowania wiarygodnego systemu proceduralnego?
Myślę, że możesz po prostu losowo spawnować planety na ich orbicie i nadać im masę, a następnie użyć matematyki N-ciała, aby obliczyć, czy są one mniej lub bardziej poprawne, jeśli nie, zacznij od nowa i losowo wygeneruj nowe orbity, dopóki nie otrzymasz czegoś, co pasuje , ale byłoby to bardzo nieefektywne.
źródło
Odpowiedzi:
Aby stworzyć wiarygodny układ słoneczny, upewnij się, że każda orbita znajduje się w sferze wpływu ciała macierzystego, ale nie w obrębie sfery wzgórza lub granicy roche innego ciała.
Strefy wpływów to maksymalny promień wokół planety, gdzie można oczekiwać stabilnych satelity.
Granica Roche jest promieniem orbitalny minimum jedno ciało niebieskie może mieć wokół drugiego. Kiedy znajduje się na niższej orbicie, rozpada się i staje się pierścieniem.
Wzgórze sfera jest istotne, gdy chcemy zapobiec stworzenie dwóch satelitów, w tym samym ciele, które mają bardzo bliskich orbitach. Jest to zakres między minimalnym i maksymalnym promieniem orbity, który planeta „zajmuje”.
Wszystkie trzy wartości można obliczyć na podstawie masy i promienia orbity za pomocą wzorów w powiązanych artykułach z Wikipedii.
Chciałbym więc wypróbować następujący algorytm:
Dotyczy to układów pojedynczych gwiazd, ale nie układów podwójnych . Binarny układ gwiezdny ma dwie gwiazdy, które krążą wokół wspólnego centrum barowego. Planety mogą orbitować jedną z gwiazd (orbita typu S) lub wspólny środek ciężkości na bardzo szerokiej orbicie (orbicie typu P).
Jeśli chcesz mieć podwójny układ gwiezdny, zalecałbym najpierw wygenerowanie drugiej gwiazdy jako kolejnego satelity wokół gwiazdy podstawowej. Cokolwiek w kuli wzgórzowej drugiej gwiazdy krąży wokół drugiej gwiazdy i wszystko o promieniu mniejszym niż kulka wzgórzowa drugiej gwiazdy krąży wokół pierwszej gwiazdy. Oblicz barycentrum i obierz obie gwiazdy z ich księżycami. Wszystko, co ma większy obit niż kula wzgórza, okrąża środek ciężkości dwóch gwiazd (orbita typu P).
Trójstronne i większe układy gwiazd n-ary są stabilne tylko wtedy, gdy gwiazdy powyżej 2. są bardzo małe w porównaniu do innych. Z tymi dodatkowymi gwiazdami należy obchodzić się tak jak z każdą inną planetą.
źródło
The square of the orbital period of a planet is directly proportional to the cube of the semi-major axis of its orbit.
Uprość fizykę 2-ciał. Fizyka N-ciała jest ogólnie chaotyczna i nie można symulować ich na stabilnej orbicie.
Pojedyncze gwiazdy
W przypadku układów z jedną gwiazdką zignorowałbym problem z ciałem N i po prostu stworzyłem zestaw planet z grubsza rozmieszczonych w geometrycznie wzrastającej odległości od Słońca . Być może możesz mieć zasadę, że jeśli wygenerowana zostanie szczególnie duża planeta, wszyscy sąsiedzi, którzy są zbyt blisko, ulegają destabilizacji i tworzą pas asteroid .
Planety blisko gwiazdy niekoniecznie są skaliste, jak ma to miejsce w naszym Układzie Słonecznym .
Masa, odległość i prędkość orbity planety są ze sobą powiązane - kiedy losowo wybierasz wartości, uzależnij jedną z nich (prawdopodobnie prędkość orbity) od pozostałych dwóch.
Gwiazdy binarne
Tak naprawdę wcześniej nie wiedziałem nic o zamieszkałych gwiazdach binarnych, zanim sprawdziłem Wikipedię w poszukiwaniu tej odpowiedzi, więc czytajcie na Habitability_of_binary_star_systems, gdzie otrzymałem niektóre z tych liczb.
Na planetach nieokrągłych (planeta krąży tylko jedna z gwiazd w układzie podwójnym), jeśli odległość planety do jej pierwotnej powierzchni przekracza około jednej piątej najbliższego podejścia drugiej gwiazdy, stabilność orbity nie jest gwarantowana. Oznacza to, że jeśli gwiazdy A i B tworzą układ podwójny z odległością AB , możesz mieć stabilne orbity planetarne wokół A lub B w odległości mniejszej niż 0,2 * AB . W przypadku tych systemów ponownie użyłbym fizyki 2-ciał jako przybliżenia.
W układach krążeniowych, o ile planeta znajduje się 2-4 razy dalej od pary binarnej od siebie, możesz ponownie potraktować to jako problem z dwoma ciałami, gdy planeta krąży wokół środka masy dwóch gwiazdy
Możesz także mieć planety krążące wokół punktów Lagrange'a L4 i L5 układu podwójnego . Dyskutowałem o tym tylko w ustawieniach science fiction - myślę, że znane są tylko ciała wielkości asteroid, które zajmują punkty Lagrange'a planet w naszym Układzie Słonecznym, chociaż mogą być przydatne w statkach kosmicznych. Technicznie rzecz biorąc, jedna z gwiazd musi być znacznie większa od drugiej, aby punkty te były stabilne , ale to od Ciebie zależy, jak bardzo chcesz, aby prawdziwa fizyka przeszkadzała w ustawieniach gry.
źródło
To długi komentarz uzupełniający istniejące odpowiedzi.
Przy wystarczającym czasie układ planetarny staje się głównie płaski. Równie dobrze możesz uprościć symulację, ustawiając ją od początku jako planarną. Następnie możesz wykonać resztę za pomocą równania Bineta , przynajmniej jeśli korzystasz z uproszczenia 2-ciał, które zasugerował Jimmy. Jeśli zaniedbujesz ogólną teorię względności, rozwiązanie jest analityczne; jeśli nie, potrzebujesz czegoś takiego jak Runge-Kutta.
źródło