Csillagrendszer legenerálása hogyan?
Írtam egy kis játékot, de van egy probléma amit nem igazán tudok megoldani.
Legenerálok gömböket amik csillagok vagy bolygók, de mivel véletlenszerű koordinátákat kapnak ezért néha egymásba érnek, mivel a véletlenszerű koordinátájuk hasonló. Hogyan lehetne olyan algoritmust írni amivel meghatározható hogy ezek között a gömbök között legyen minimális és maximális távolság? Kód nem kell csak elmélet vagy valami módszertan amit tanulmányozhatok.
Itt egy kép: [link]
A probléma nem olyan egyszerű mivel kell egy minimális távolság a csillagtól de a bolygók holdjának és kell minimális távolság a bolygójától.





Logikus amit a 10-es ír. Ha hasonló távolságra lennének a naptól, akkor ütköznének és szétszóródnának a darabjaik, majd vagy egy nagyobb bolygó, vagy rakat törmelék lenne a helyükön.
Tehát valóban elég a folyamatos távolság növelés a naptól, plusz a szög véletlen választása.





Ez így nem tűnik valami hatékonynak, de tetszik a megoldásod, gyakorlatiasságra utal.
Mondok még egy érdekes megoldást, ha mindenképpen Descartes koordinátába gondolkodol:
Leraksz mondjuk 100 x 100 csillagot egymástól 100-100 FÉ távolságra, így kapsz egy Grid-et. Ezen végig iterálsz és mindegyiket relatív eltolod [-45 -> +45] FÉ tartományban egy random számmal X és Y irányban is.
100% hoyg nem lesz ütközés, sőt legközelebb 10 FÉ lesz egymástól két csillag távolabb nem. A randomizálás miatt egyáltalán nem vehető ki a grid.
Igazából egyetlen ciklusban meg is lehet csinálni.










Ilyen lett a grides módszerrel, nem a legjobb.
Persze túl közel vannak. Nem kör hanem négyzet alakú. :)





A rigid body szimulációval ágyúval lősz verébre, ennyi erővel az ősrobbanást is szimulálhatod :D
A grid megoldás majdnem jó, lehetne finomítani rajta, akkor jobban nézne ki. Ha mindenképpen kör kell akkor használj poláris koordináta rendszert, A módszer ugyan az. Távolodj el a középponttól fokozatosan és körbe tegyél le csillagokat kerület arányosan, aztán ezekre alkalmazz egy ditheringet (ahogy a grid-es megoldásnál)





Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!