Taula de continguts:

Simulació del sistema solar: 4 passos
Simulació del sistema solar: 4 passos

Vídeo: Simulació del sistema solar: 4 passos

Vídeo: Simulació del sistema solar: 4 passos
Vídeo: Спиральная модель - наша солнечная система представляет собой вихрь 2024, Juliol
Anonim

Per a aquest projecte em vaig proposar crear una simulació de com la gravetat afecta el moviment dels cossos planetaris en un sistema solar. Al vídeo anterior \, el cos del Sol està representat per l'esfera de malla de filferro i els planetes es generen aleatòriament.

El moviment dels planetes es basa en la física real, la Llei de la Gravitació Universal. Aquesta llei defineix la força gravitatòria que una altra massa exerceix sobre una massa; en aquest cas, el Sol a tots els planetes, i els planetes l'un a l'altre.

Per a aquest projecte he utilitzat Processing, un entorn de programació basat en Java. També he utilitzat el fitxer d’exemple Processing que simula la gravetat dels planetes. Tot el que necessiteu per a això és el programari de processament i un ordinador.

Pas 1: Simulació bidimensional

Vaig començar veient uns quants vídeos sobre com codificar això que Dan Shiffman va crear al seu canal de YouTube, el tren de codificació (part 1/3). En aquest punt vaig pensar que utilitzaria la recursió per generar el sistema solar, de manera similar a com fa Shiffman només fent servir les lleis de la física.

Vaig crear un objecte de planeta que tenia "planetes infantils", que al seu torn també tenien planetes "fills". El codi per a la simulació 2D no estava acabat perquè no tenia una manera excel·lent de simular les forces gravitatòries de cada planeta. Vaig pivotar des d'aquesta manera de pensar, en una direcció basada en l'exemple de processament incorporat de l'atracció gravitatòria. La qüestió era que necessitava calcular la força gravitatòria de tots els altres planetes de cada planeta, però no podia pensar com treure la informació d’un planeta individualment fàcilment. Després de veure com ho fa el tutorial de Processament, em vaig adonar exactament de com fer-ho fent servir bucles i matrius

Pas 2: Prendre-la a 3 dimensions

Utilitzant el codi d’exemple de Planetary Attraction que ve amb el processament, vaig començar un nou programa per a una simulació 3D. La diferència principal es troba a la classe Planet, on he afegit una funció d’atracció, que calcula la força gravitatòria entre dos planetes. Això em va permetre simular el funcionament dels nostres sistemes solars, on els planetes no només s’atrauen al sol, sinó també a qualsevol altre planeta.

Cada planeta té característiques generades aleatòriament com la massa, el radi, la velocitat orbital inicial, etc. Els planetes són esferes sòlides i el Sol és una esfera de malla de filferro. A més, la ubicació de la càmera gira al voltant del centre de la finestra.

Pas 3: utilitzar planetes reals

Image
Image

Després d’aconseguir el marc per a la simulació 3D, vaig utilitzar Wikipedia per trobar les dades planetàries reals del nostre sistema solar. Vaig crear una gran quantitat d'objectes del planeta i vaig introduir les dades reals. Quan vaig fer això, vaig haver de reduir totes les característiques. Quan vaig fer això, hauria d'haver pres els valors reals i multiplicar-los per un factor per reduir els valors, en canvi ho vaig fer en unitats de terres. És a dir, he pres la relació entre el valor de la Terra i el valor dels altres objectes, per exemple, el Sol té 109 vegades més massa que la Terra. Tanmateix, això va donar lloc a que les mides dels planetes semblessin massa grans o massa petites.

Pas 4: Pensaments finals i comentaris

Si continués treballant en aquesta simulació, milloraria / milloraria un parell de coses:

1. Primer, escalaria tot uniformement fent servir el mateix factor d’escala. Després, per millorar la visibilitat de les òrbites, afegiria un rastre darrere de cada planeta per veure com es compara cada revolució amb l’anterior.

2. La càmera no és interactiva, cosa que significa que una part de les òrbites es troba fora de la pantalla, "darrere de la persona". Hi ha una biblioteca de càmeres en 3D anomenada Peazy Cam, que s’utilitza a la part 2 de la sèrie de vídeos de Coding Train sobre aquest tema. Aquesta biblioteca permet al visor girar, panoramitzar i ampliar la càmera de manera que puguin seguir tota l'òrbita d'un planeta.

3. Finalment, actualment els planetes no es poden distingir entre ells. M'agradaria afegir "pells" a cada planeta i al Sol, de manera que els espectadors puguin reconèixer la Terra i altres.

Recomanat: