Sommario:
- Passaggio 1: simulazione bidimensionale
- Passaggio 2: portarlo a 3 dimensioni
- Passaggio 3: utilizzo di pianeti reali
- Passaggio 4: considerazioni finali e commenti
Video: Simulazione del sistema solare: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
Per questo progetto ho deciso di creare una simulazione di come la gravità influenza il movimento dei corpi planetari in un sistema solare. Nel video qui sopra\, il corpo del Sole è rappresentato dalla sfera in rete metallica e i pianeti sono generati casualmente.
Il moto dei pianeti si basa sulla fisica reale, la Legge di Gravitazione Universale. Questa legge definisce la forza gravitazionale esercitata su una massa da un'altra massa; in questo caso il Sole su tutti i pianeti, ei pianeti l'uno sull'altro.
Per questo progetto ho utilizzato Processing, un ambiente di programmazione basato su Java. Ho anche usato il file di esempio di Processing che simula la gravità dei pianeti. Tutto ciò di cui avrai bisogno per questo è il software di elaborazione e un computer.
Passaggio 1: simulazione bidimensionale
Ho iniziato guardando alcuni video su come programmare questo che Dan Shiffman ha creato sul suo canale YouTube, The Coding Train (Parte 1/3). A questo punto ho pensato che avrei usato la ricorsione per generare il sistema solare, in modo simile a come fa Shiffman usando solo le leggi della fisica.
Ho creato un oggetto pianeta che aveva "pianeti figli", che a loro volta avevano anche pianeti "figli". Il codice per la simulazione 2D non era finito perché non avevo un ottimo modo per simulare le forze gravitazionali per ogni pianeta. Ho fatto perno da questo modo di pensare, in una direzione basata sull'esempio di elaborazione intrinseco dell'attrazione gravitazionale. Il problema era che avevo bisogno di calcolare la forza gravitazionale da tutti gli altri pianeti su ogni pianeta, ma non riuscivo a pensare a come estrarre facilmente le informazioni di un singolo pianeta. Dopo aver visto come funziona il tutorial sull'elaborazione, ho capito esattamente come farlo usando invece loop e array
Passaggio 2: portarlo a 3 dimensioni
Utilizzando il codice di esempio per l'attrazione planetaria fornito con l'elaborazione, ho avviato un nuovo programma per una simulazione 3D. La principale differenza è nella classe Planet, dove ho aggiunto una funzione di attrazione, che calcola la forza gravitazionale tra due pianeti. Questo mi ha permesso di simulare come funziona il nostro sistema solare, dove i pianeti non sono attratti solo dal sole, ma anche da ogni altro pianeta.
Ogni pianeta ha caratteristiche generate casualmente come la massa, il raggio, la velocità orbitale iniziale, ecc. I pianeti sono sfere solide e il Sole è una sfera di rete metallica. Inoltre, la posizione della telecamera ruota attorno al centro della finestra.
Passaggio 3: utilizzo di pianeti reali
Dopo aver ottenuto il framework per la simulazione 3D, ho usato Wikipedia per trovare i dati planetari effettivi per il nostro sistema solare. Ho creato una serie di oggetti pianeta e ho inserito i dati reali. Quando ho fatto questo, ho dovuto ridimensionare tutte le caratteristiche. Quando l'ho fatto avrei dovuto prendere i valori effettivi e moltiplicarli per un fattore per ridimensionare i valori, invece l'ho fatto in unità di Terre. Cioè ho preso il rapporto tra il valore della Terra e il valore degli altri oggetti, per esempio il Sole ha 109 volte più massa della Terra. Tuttavia, ciò ha portato le dimensioni dei pianeti a sembrare troppo grandi o troppo piccole.
Passaggio 4: considerazioni finali e commenti
Se dovessi continuare a lavorare su questa simulazione, perfezionerei/migliorerei un paio di cose:
1. Innanzitutto vorrei ridimensionare tutto in modo uniforme utilizzando lo stesso fattore di ridimensionamento. Quindi per migliorare la visibilità delle orbite, aggiungerei una scia dietro ogni pianeta per vedere come ogni rivoluzione si confronta con quella precedente
2. La telecamera non è interattiva, il che significa che parte delle orbite sono fuori dallo schermo, "dietro la persona". C'è una libreria di fotocamere 3D chiamata Peazy Cam, che viene utilizzata nella parte 2 della serie di video di Coding Train su questo argomento. Questa libreria consente allo spettatore di ruotare, eseguire la panoramica e lo zoom della telecamera in modo da poter seguire l'intera orbita di un pianeta.
3. Infine, i pianeti sono attualmente indistinguibili l'uno dall'altro. Vorrei aggiungere "pelli" a ciascun pianeta e al Sole, in modo che gli spettatori possano riconoscere la Terra e cose del genere.
Consigliato:
Come creare un registratore di dati in tempo reale di umidità e temperatura con Arduino UNO e SD-Card - Simulazione del data logger DHT11 in Proteus: 5 passaggi
Come creare un registratore di dati in tempo reale di umidità e temperatura con Arduino UNO e SD-Card | Simulazione DHT11 Data-logger in Proteus: Introduzione: ciao, sono Liono Maker, ecco il link YouTube. Stiamo realizzando un progetto creativo con Arduino e lavoriamo su sistemi embedded.Data-Logger: Un data logger (anche data-logger o data recorder) è un dispositivo elettronico che registra i dati nel tempo w
Trasmettitore Flysky RF alimentato tramite USB + connessione del segnale via cavo al PC + software di simulazione gratuito: 6 passaggi
Trasmettitore Flysky RF alimentato tramite USB + connessione del segnale via cavo al PC + software di simulazione gratuito: se sei come me, ti piacerebbe testare il tuo trasmettitore RF e imparare prima di far schiantare il tuo caro aereo/drone RF. Questo ti darà ulteriore divertimento, risparmiando un sacco di soldi e tempo. Per farlo, il modo migliore è connettere il tuo trasmettitore RF a te
Simulazione del segnale ferroviario: 4 passaggi
Simulazione del segnale ferroviario: Semaforo per le ferrovie. (Simulazione della realtà) Una semplice spiegazione del codice: Il codice consente una sensoristica costante per i treni. Se un treno deve passare attraverso la sezione selezionata della ferrovia, il semaforo diventa rosso, avvertendo gli altri
Luce solare senza batteria o luce solare diurna Perché no?: 3 passaggi
Luce solare senza batteria o luce solare del giorno… Perché no?: Benvenuto. Scusa per il mio ingleseDaylight? Solare? Come mai? Ho una stanza leggermente buia durante il giorno e ho bisogno di accendere le luci durante l'uso. Installare la luce solare per il giorno e la notte (1 stanza): (in Cile) - Pannello solare 20w: US $ 42 - Batteria: US $ 15 - Solare cont
Dispositivo di irraggiamento solare (SID): un sensore solare basato su Arduino: 9 passaggi
Dispositivo di irraggiamento solare (SID): un sensore solare basato su Arduino: il dispositivo di irraggiamento solare (SID) misura la luminosità del sole ed è progettato specificamente per essere utilizzato in classe. Sono costruiti utilizzando Arduino, che consente loro di essere creati da tutti, dagli studenti delle scuole medie agli adulti. Questo ist