Il lavoro riguarda l’esame Progetto di Sistemi Informatici, ordinamento didattico 509, per l’anno accademico 2008/2009 del corso di studi di Laurea Magistrale in Ingegneria Informatica presso l’Università degli Studi di Roma Tre.

Introduzione

In questa sezione è presentato il lavoro svolto, attraverso la raccolta del materiale utilizzato per il suo sviluppo e compimento.

Il sistema solare, fonte Wikipedia

Il sistema solare è il sistema planetario costituito dai vari oggetti celesti mantenuti in orbita dalla forza di gravità del Sole; vi appartiene anche la Terra. È costituito da otto pianeti, dai rispettivi satelliti naturali, da cinque pianeti nani e da miliardi di corpi minori. Quest’ultima categoria comprende gli asteroidi, in gran parte ripartiti fra due cinture asteroidali (la fascia principale e la fascia di Kuiper), le comete, le meteoroidi e la polvere interplanetaria.

In modo schematico, il sistema solare è composto dal Sole, dai quattro pianeti rocciosi interni, dalla fascia principale degli asteroidi, dai quattro giganti gassosi esterni, dalla cintura di Kuiper, dal disco diffuso e dalla ipotetica nube di Oort, sede di gran parte delle comete.

Il vento solare, un flusso di plasma e particelle cariche proveniente dal Sole, permea l’intero sistema solare. Questo crea una bolla nel mezzo interstellare conosciuta come eliosfera, che si estende fino oltre alla metà del disco diffuso.

In ordine di distanza dal Sole, gli otto pianeti sono: Mercurio, Venere, Terra, Marte, Giove, Saturno, Urano e Nettuno.

Sistema solare disegnato
Immagine 1: Sistema solare da Wikipedia

A metà 2008 cinque oggetti del sistema solare sono stati classificati come pianeti nani: Cerere, situato nella fascia degli asteroidi, ed altri quattro corpi situati al di là dell’orbita di Nettuno, Plutone (in precedenza classificato come il nono pianeta), Haumea, Makemake, e Eris.

Sei dei pianeti e tre dei pianeti nani hanno in orbita attorno ad essi dei satelliti naturali; inoltre tutti i pianeti esterni sono circondati da anelli planetari, composti di polvere ed altre particelle.

Un pò di relativismo

E' facile notare che i concetti di anno e giorno sono relativi nell’universo. Un dato particolarmente interessante è stato riscontrato sul pianeta Venere il quale ruota in verso opposto (così come anche Urano) rispetto agli altri pianeti e un suo giorno dura più che un suo anno. D’ora in avanti è importante parlare in termini precisi e servono degli assiomi, pertanto quando si parlerà di giorni e di anni si intenderanno quelli terrestri. Si ricorda che per periodo di rotazione si intende l’arco di tempo necessario per compiere un giro completo su se stesso e per periodo di rivoluzione l’arco di tempo necessario per percorrere un giro intorno al sole. I dati che seguono sono stati raccolti da diverse fonti.

Eclittica, fonte Wikipedia

L’eclittica è il cammino apparente che il Sole traccia nel cielo durante l’anno. Mentre sembra muoversi nel cielo in relazione alle stelle, il cammino apparente si allinea con i pianeti nel corso dell’anno. L’eclittica, più esattamente, è l’intersezione della sfera celeste con il piano d’orbita terrestre (piano eclittico). Può anche pensarsi come un cerchio massimo della sfera celeste percorsa dal Sole nel suo apparente moto annuo. Il piano d’orbita terrestre è il piano geometrico su cui giace l’orbita della Terra ed è anche chiamato piano dell’eclittica. Il nome eclittica deriva da eclissi, poiché le eclissi di Sole avvengono naturalmente su di essa. Il piano eclittico andrebbe distinto dal piano eclittico invariabile, che è perpendicolare alla somma vettoriale dei momenti angolari di tutti i piani orbitali planetari, di cui Giove è il principale contributore. Attualmente il piano eclittico è inclinato rispetto al piano eclittico invariabile di circa 1,5°.

Inclinazione assiale
Immagine 2: Inclinazione assiale, eclittica e equatore celeste

Inclinazione assiale (axial tilt), fonte Wikipedia

Inclinazione assiale è un termine astronomico che si riferisce all’angolo di inclinazione dell’asse di rotazione di un pianeta in rapporto al suo piano orbitale.

Un pianeta il cui asse di rotazione è perpendicolare al piano dell’orbita ha un’inclinazione assiale di 0°. Nel nostro sistema solare, il piano orbitale della Terra è noto come piano dell’eclittica.

La Terra ha un’inclinazione assiale di 23° 27'. È inclinata nella stessa direzione per tutto l’anno. Tuttavia, dato che la Terra orbita attorno al Sole, l’emisfero inclinato verso il Sole gradualmente viene a trovarsi in direzione opposta, e viceversa. Questa è la causa principale dell’alternarsi delle stagioni. Quando un emisfero è inclinato verso il Sole ha giorni più lunghi e notti più corte. L’inclinazione assiale non solo causa il variare delle ore di luce, ma provoca anche l’angolazione con cui la luce colpisce la terra, più verticale in estate, meno in inverno.

I quattro movimenti fondamentali del pianeta Terra

Rotazione La Terra ruota su se stessa, compiendo un giro completo (360°) in circa 24 ore (arrotondando per eccesso). Ogni ora quindi il nostro pianeta ruota per 1/24 di angolo giro e quindi 15°. E' basandosi su questo che sono stati ideati i 24 fusi orari di ampiezza 15°. Inoltre l’asse di rotazione è inclinato, come detto sopra, di poco più che 23° (vedere l’immagine 2).

Rivoluzione La Terra compie nell’arco di 365 giorni e un quarto (da qui la necessità dell’anno bisestile) una rivoluzione completa intorno al Sole. Questo determina le stagioni, in relazione anche all’inclinazione dell’asse terrestre, che permetterà ad esempio all’emisfero nord di essere rivolto verso il sole a partire dal 21 giugno e all’emisfero sud di esserlo a partire dal 21 dicembre. Questo genera l’estate e le altre stagioni di conseguenza, nei due emisferi.

le stagioni
Immagine 3: le stagioni

Precessione degli equinozi L’asse di rotazione (inclinato) vacilla a causa della forza di gravità del Sole. Per completare questo percorso conico dell’asse occorrono 26000 anni. Per effetto di questo, tra circa 12000 anni, l’asse punterà verso la stella Vega, che sarà pertando la stella polare dei nostri discendenti. Per visualizzare questo movimento basta semplicemente immaginarsi, nell’immagine 2, una rotazione dell’asse di rotazione intorno all’asse perpendicolare all’orbita.

Movimento galattico Infine l’ultimo movimento dei quattro fondamentali del pianeta Terra riguarda il fatto che la nostra galassia compie una rivoluzione, attorno al proprio centro, ogni duecento milioni di anni.

fonte: http://www.youtube.com/watch?v=HeuB7OEm4eo

Orbite dei pianeti e dei satelliti rappresentati

Le orbite sono tutte complanari, tranne quella della Luna e di Plutone rispetto all’eclittica: la prima è inclinata di 5° 19' ossia di 5.033° in valore decimale; la seconda di 17.14°. Tutto ciò è apprezzabile nell’applicazione sviluppata.

Orbite ellittiche ma quasi circolari

Sul sito http://www.itnautico.it è stato trovato un articolo interessante che riguarda la forma delle orbite e in particolare seguono i passaggi più importanti:

Keplero lavorò con Tycho Brahè e continuò la sua opera. Studiò a lungo i dati delle sue osservazioni astronomiche e nel 1609, otto anni dopo la morte di Tycho, riuscì a stabilire che le orbite dei pianeti sono ellittiche, anziché circolari, e a definire le tre famose leggi.

La scoperta ha talmente impressionato l’immaginario collettivo che per evidenziare la forma ellittica, anchei nostri giorni, l’orbita terrestre è spesso rappresentata con un’eccentricità esagerata

I dati però evidenziano che alcune orbite hanno in realtà un’eccentricità veramente piccola così da poter essere approssimate molto bene con dei cerchi. Infatti, definendo l’eccentricità come rapporto tra la distanza dei fuochi e l’asse maggiore dell’ellisse […]

Ad esempio se volessimo disegnare l’orbita terrestre con l’asse maggiore di un metro, i due fuochi disterebbero appena di 1.67 cm e l’asse minore misurerebbe 99.986 cm.

Si elencano qui di seguito i dati scientifici presi, ancora una volta, da Wikipedia

Terra: 0.0167. Nel tempo, l’eccentricità dell’orbita terrestre varia lentamente, passando da quasi 0 a circa 0.05 come risultato dell’attrazione gravitazionale tra i pianeti.

Altre eccentricità importanti sono: Luna 0.0554, Mercurio 0.2056, Venere 0.0068, Marte 0.0934, Giove 0.0483, Saturno 0.0560, Urano 0.0461, Nettuno 0.0097, Plutone 0.2488

Si è giunti dunque alla conclusione che la non apprezzabilità a occhio delle differenze importate dalla forma ellittica delle orbite porta alla semplificazione di utilizzare orbite perfettamente circolari.

Sole

il Sole
Immagine 4: il Sole

Raggio equatoriale 695 500 000 Km

Periodo di rotazione variabile come tutte le stelle, ma circa 27 giorni

Mercurio

Mercurio
Immagine 5: Mercurio

Raggio equatoriale 2439.6 Km

Periodo di rotazione 58 giorni

Periodo di rivoluzione 0.241 anni

Distanza media dal sole 57.91 milioni di Km

Inclinazione assiale 0.01° circa

Venere

Venere
Immagine 6: Venere

Raggio equatoriale 6051.85 Km

Periodo di rotazione -243 giorni (rotazione inversa rispetto agli altri pianeti)

Periodo di rivoluzione 0.615 anni

Distanza media dal sole 108 milioni di Km

Inclinazione assiale 177.4°

Terra

Terra
Immagine 7: Terra

Raggio equatoriale 6378.388 km

Periodo di rotazione 1 giorno circa

Periodo di rivoluzione 1 anno circa

Distanza media dal sole 149.6 milioni di Km

Inclinazione assiale 23.439°

Luna

Citando ancora Wikipedia: poiché il periodo di rotazione della Luna è esattamente uguale al suo periodo orbitale, noi vediamo sempre la stessa faccia della Luna, rivolta verso la Terra. Questa sincronia è il risultato della frizione gravitazionale che ha rallentato la rotazione della Luna nella sua storia iniziale. A causa di queste forze, dette anche forze di marea, anche la rotazione della Terra' viene gradualmente rallentata, e la Luna si allontana lentamente dalla Terra mentre il momento rotazionale di quest’ultima viene trasferito al momento orbitale della Luna. L’attrazione gravitazionale che la Luna esercita sulla Terra è la causa delle maree del mare. Le variazioni della marea sono sincronizzate con l’orbita della Luna attorno alla Terra.

Rispetto agli altri satelliti del sistema solare, la Luna è eccezionalmente grande rispetto al pianeta attorno a cui orbita, tanto che il sistema Terra-Luna può essere quasi considerato un pianeta doppio ("quasi" perché il centro di gravità del sistema Terra-Luna è comunque di poco all’interno della Terra). In genere, satelliti di dimensioni a lei comparabili orbitano attorno ai giganti gassosi (Giove, Saturno), mentre i pianeti più affini alla Terra o non hanno satelliti (Venere) o ne hanno di minuscoli (Marte).

Luna
Immagine 8: Luna

Raggio equatoriale 1738 Km

Periodo di rotazione rotazione sincrona, ossia uguale al suo periodo di rivoluzione

Periodo di rivoluzione attorno alla terra 27.3 giorni

Distanza media dalla terra 385104 Km circa

Inclinazione assiale 1.5424°

Il piano dell’orbita della Luna è inclinato di 5°19' rispetto a quello dell’orbita della Terra intorno al Sole (il piano dell’eclittica)

Marte

Marte
Immagine 9: Marte

Raggio equatoriale 3402.45 Km

Periodo di rotazione 1.03 giorni

Periodo di rivoluzione 1.881 anni

Distanza media dal sole 227.94 milioni di Km

Inclinazione assiale 25.19°

Giove

Giove
Immagine 10: Giove

Raggio equatoriale 71492 Km

Periodo di rotazione 0.41 giorni

Periodo di rivoluzione 11.87 anni

Distanza media dal sole 778.4 milioni di Km

Inclinazione assiale 3.13°

Saturno

Saturno
Immagine 11: Saturno

Raggio equatoriale 60268 Km

Periodo di rotazione 0.43 giorni

Periodo di rivoluzione 29.45 anni

Distanza media dal sole 1426.98 milioni di Km

Inclinazione assiale 26.73°

Urano

Urano
Immagine 12: Urano

Raggio equatoriale 25559 Km

Periodo di rotazione -0.718 giorni (rotazione inversa rispetto agli altri pianeti)

Periodo di rivoluzione 84.07 anni

Distanza media dal sole 2870 milioni di Km

Inclinazione assiale 97.77°

Nettuno

Nettuno
Immagine 13: Nettuno

Raggio equatoriale 24764 Km

Periodo di rotazione 0.672 giorni

Periodo di rivoluzione 164.9 anni

Distanza media dal sole 4497 milioni di Km

Inclinazione assiale 28.32°

Plutone (nano-pianeta)

Plutone
Immagine 14: Plutone

Raggio equatoriale 1153 Km

Periodo di rotazione -6.387 giorni

Periodo di rivoluzione 248.09 anni

Distanza media dal sole 5900 milioni di Km

Inclinazione assiale 122.54°

Il piano dell’orbita di Plutone è inclinato di 17.14° rispetto al piano dell’eclittica

Strumenti OpenGL utilizzati

Il progetto ha l’obiettivo di realizzare un sistema di navigazione del Sistema Solare tramite librerie OpenGL e GLUT.

Il modello è composto da:

Per aumentare la coesione e la manutenibilità delle componenti software, il progetto è suddiviso in 4 files:

Librerie GLUT

glutInitDisplayMode(GLUT_DEPTH | GLUT_RGBA | GLUT_DOUBLE)

glutInitWindowSize(1280,800)

glutInit(&narg, args)

glutCreateWindow("3D Solar System in OpenGL by AXEL & GIACOMO")

glutDisplayFunc(display)

glutReshapeFunc(reshape)

glutMotionFunc(motion)

glutKeyboardFunc(keydown)

glutSpecialFunc(special)

glutMouseFunc(mouse)

glutIdleFunc(idle)

glutTimerFunc(100,timerSun,0)

Librerie OpenGL

glEnable(GL_NORMALIZE)

glEnable(GL_DEPTH_TEST)

glDepthFunc(GL_LESS)

glClearColor(0.0f, 0.0f, 0.0f, 1.0f)

glNormal3f()

glBegin() glEnd() paramteri utilizzati di glBegin() sono stati GL_LINE_LOOP, GL_QUADS e GL_POINTS

glTexCoord2f(s,t)

glVertex3f(x,y,z)

glDisable()

glEnable() alcuni parameteri sono stati GL_DEPTH_TEST, GL_TEXTURE_2D, GL_FOG

glRotatef(angle,x,y,z)

glScalef(x,y,z)

glTranslatef(x,y,z)

glBindTexture(GL_TEXTURE_2D,texture_id)

lGenTextures(GLsizei n,GLuint *textures)

gluBuild2DMipmaps(GLenum target,GLint internalFormat,GLsizei width,GLsizei height,GLenum format,GLenum type,const void * data)

glPushMatrix()

glPopMatrix()

glColor4f(R,G,B,A)

glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, vector)

glLightfv(GL_LIGHTn, feature, feature_vector)

glShadeModel(GL_SMOOTH)

glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, GL_FALSE)

glFogfv(GL_FOG_COLOR, fogColor)

glHint(GL_FOG_HINT, GL_NICEST)

glFogi(GL_FOG_MODE, GL_LINEAR)

glFogf(GL_FOG_START, 0.0f)

Il programma

Il programma comincia inizializzando correttamente lo schermo e settandone i parametri tramite alcune librerie GLUT sopra elencate. Successivamente viene creato uno sfondo nero, registrate le funzioni di callback di GLUT per la gestione degli eventi, caricate in un array tutte le textures necessarie e avviato il glutMainLoop().

La funzione di disegno display() è la responsabile del disegno di qualunque cosa all’interno della finestra. Si occupa essenzialmente di posizionare e orientare la camera con gluLookAt(), operare scalamenti e rotazioni al modello con glScalef() e glRotatef() rispettivamente, e di disegnare il cielo e tutti i componenti del sistema solare con le funzioni renderSkyBox() e drawSolarSystem(). Si occupa anche di gestire il modo in cui viene applicato il texturing, in modo tale che possa essere cambiato a tempo di esecuzione. Ricordiamo infatti che essendo le funzioni di callback chiamate continuamente dal glutMainLoop() (tranne la glutTimerFunc che vedremo fra poco) lo stato di OpenGL può essere cambiato dinamicamente durante l’esecuzione del programma.

La funzione drawSolarSystem() esegue la chiamata a tutte le funzioni responsabili del disegno, quindi drawSun(), drawPlanets(), drawMoon(), drawPluto(), drawRevolutionRings() e drawGrid(). A tutte queste funzioni vengono applicate due modeling transformations, una per la rotazione intorno all’asse z necessaria per dare l’effetto che la telecamera ruoti intorno ai pianeti, l’altra per la traslazione lungo z per dare l’effetto che la telecamerca venga traslata lungo l’asse z stesso.

Il problema principale è stato creare il cielo stellato. Ben consapevoli che uno sfondo nero con tantissime primitive puntiformi sarebbe stata una scelta poco efficiente, è stato scelto di creare il cosiddetto skybox, o scatola del cielo come evidenzia la traduzione dall’inglese. E' stata creata una vera e propria scatola, ovvero un cubo costruito con la primitiva ‘glBegin(GL_QUADS)` applicata 6 volte, una per ogni faccia del cubo. Ad ogni faccia è stata opportunamente applicata la funzione di texture mapping loadTexture, nonché una normale distinta per ogni faccia tramite glNormal3f() per ottenere una corretta illuminazione del cielo. Il texuring con l’immagine del cielo ha reso possibile una rappresentazione estremamanete realistica del cielo stellato nello spazio. E’ importante notare che subito prima di disegnare il cielo stesso è stata disabilitata la profondità con glDisable(GL_DEPTH_TEST) per far sì che il sistema solare, da disegnare all’interno del cielo, avesse come sfondo il cielo stesso, a prescindere dalle trasformazioni applicate dall’utente visitatore. Finito il disegno del cielo, è stata riabilitata la profondità con glEnable(GL_DEPTH_TEST).

La rappresentazione del Sole e dei pianeti ha uno schema di funzionamento molto simile, quindi la spiegazione seguente varrà per tutti indistintamente, a meno della differente texture applicata, del raggio di ogni pianeta, del suo raggio e velocità di rotazione e di rivoluzione e, per finire, dell’asse di inclinazione di ogni pianeta. Tutte queste caratteristiche sono state inserite nell’header variables.h e rispecchiano i dati scientifici che abbiamo raccolto in fase di progettazione per rendere realistico l’intero modello.

Le funzioni drawSun() e drawPlanets() partono dal disegno di una sfera tramite la funzione drawSolidSphere() che prende come parametro il raggio, slices, stacks e le coordinate s e t per il texture mapping a 2D. Al Sole è stata applicata la funzione glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, sun_emission) che rende il sole stesso brillante di luce propria (gialla).

La funzione drawPlanets(), applica una serie di trasformazioni geometriche, in particolare:

La chiamata a funzione timerSun(0) cambia dinamicamente il texuring del Sole, e tramite la funzione glutTimerFunc() viene invocata ogni 100 ms (così è stato impostato il valore) e dà l’effetto del Sole che brilla.

La funzione keydown() è responsabile per la gestione dell’input da tastiera. A seconda del tasto viene gestito un evento differente. In particolare:

Con la funzione mouse(), cliccando col sinistro si ruota il modello, col destro si trasla il modello.

Con la funzione special() si gestiscono la freccia in su,la freccia in giù, la freccia a sinistra e la freccia a destra. Rispettivamente, si fa uno zoom in, uno zoom out, si ruota la camera verso sinistra, si ruota la camera verso destra.

La funzione idle() è responsabile delle animazioni. Tutte le rotazioni e rivoluzioni dei pianeti e tutto ciò che si muove quando l’utente digita i tasti a o r si devono a questa funzione. La funzione agisce tramite un array ai valori delle rotazioni/rivoluzioni dei singoli pianeti. La trasformazione tiene conto della velocità di simulazione che può essere alterata dal visitatore con s o S a tempo di esecuzione. Le misure del tempo di rivoluzione e del tempo di rotazione di ogni pianeta sono parametriche rispetto al tempo di rivoluzione e del tempo di rotazione della Terra. Cambiando questo parametro, cambiano tutte le altre. Anche in questo senso abbiamo lavorato affinché i parametri modellassero nel modo più fedele possibile la realtà.

La funzione reshape() viene richiamata ogni volta che la finestra viene ridimensionata. La funzione motion() viene richiamata ogni volta che che viene eseguita una trasformazione sul modello (panning, scaling, moving).

Gli asteroidi

La funzione drawAsteroids() disegna quattro serie di 200 asteroidi disposti in cerchio. Ogni asteroide è in realtà un dodecaedro disegnato tramite la funzione glutSolidDodecahedron(). Essendo questa funzione non provvista di coordinate texture, è stato realizzata la generazione automatica delle coordinate texture. I passi necessari sono tre:

Questo algoritmo ha reso possibile applicare la texture degli asteroidi al dodecaedro in maniera soddisfacente.

Il lavoro concluso

Realismo del modello

Vengono qui illustrati alcuni aspetti del modello particolarmente realistici. I raggi dei pianeti sono perfettamente in rapporto tra loro rispecchiando fedelmente i dati raccolti all’inizio dell’articolo. Il Sole va immaginato quindicimila volte più grande, ed è chiaro che non poteva essere realizzato in scala perfetta. Giove, Saturno, Urano e Nettuno vanno immaginati 3.75 volte più grandi rispetto a quanto si vede nel modello. La scelta di ridurne la dimensione è dovuta al fatto che avendo scalato in questo modo il Sole essi sarebbero apparsi altrimenti più grandi di quest’ultimo.

L’asse di rotazione della Terra, così come quello degli altri pianeti sono perfettamente inclinati così come nei dati raccolti sopra e la rotazione dei pianeti permette di osservarne le stagioni, o meglio da cosa sono dovute. Ad esempio, per quanto riguarda la Terra, si vede perfettamente quanto illustrato nell’immagine 3.

La Terra inoltre nel periodo in cui compie un giro completo intorno al Sole avrà girato attorno al proprio asse esattamente 365.25 volte, dato che influisce ad esempio sugli anni bisestili.

Tutti i pianeti esercitano la propria rivoluzione attorno al Sole rispetto a un piano comune che viene definito eclittica. Plutone che è un nano-pianeta ha un orbita di rivoluzione attorno al sole che è inclinata di circa 17° rispetto all’eclittica, e anche questo è rappresentato.

La Luna ha un orbita attorno alla terra inclinata di circa 5° rispetto all’eclittica ed è rappresentato. Inoltre la Luna ruota attorno alla terra più di 27 volte (altro dato scientifico) prima che questa compia un giro completo attorno al Sole. E ancora il periodo di rotazione della Luna coincide esattamente con il suo periodo di rivoluzione.

Quasi tutti i pianeti ruotano in verso antiorario (osservandone il polo nord) attorno al proprio asse e le orbite di rivoluzione sono per tutti antirorarie.

Venere e Urano ruotano in verso contrario (orario osservandoli dal polo nord).

Tutte le velocità di rotazione e di rivoluzione sono in rapporto realistico tra di loro, così come i raggi di rivoluzione dei pianeti.

Non sono state realizzati il movimento galattico ne' la precessione degli equinozi. Per quanto riguarda il primo è chiaro che essendo la granuralità del modello il sistema solare non era proprio concepibile, per quanto riguarda la seconda, essa si compie ogni ventiseimila anni e sarebbe stato quindi non apprezzabile e quindi inutile rapresentarla.

Le unità di misura nel modello

Ovviamente non disponendo di metri, Km e altre unità di misura del genere in C, si è lavorato rispetto alle proporzioni. L’elemento più importante del sistema solare è chiaramente il Sole e per questo motivo si è scelto di utilizzare il suo raggio sun_radius come grandezza di riferimento. Non era chiaramente possibile lasciare una proporzione realistica tra le dimensione di Sole e altri pianeti, poiché altrimenti nel modello in 3D sarebbe stato visibile solamente il primo, visti gli ovvi limiti fisici di un monitor medio.

Si è così scelto di rendere il Sole (in rapporto agli altri pianeti) quindicimila volte più piccolo, grazie alla costante mult applicata agli altri pianeti, e alcuni pianeti (Giove, Saturno, Urano, Nettuno) 3.75 volte più piccoli grazie al fattore mult2. Infine Plutone, grazie ad una costante moltiplicativa mult3, appare 1.333333333 volte più grande, il che lo rende visibile.

Il fattore moltiplicativo mult4 riporta la luna a una distanza verosimile dalla terra.

Sono stati pretanto calcolati con molta pazienza e poi utilizzati, basandosi su varie fonti, i seguenti rapporti

'RAGGI DEI PIANETI IN RAPPORTO AL SOLE'
Sole:  695 500 000 km = sun_radius
Mercurio: equatoriale: 2439,6 km = sun_radius/285087.0f
Venere: 6051,85 km = sun_radius/114923.0f
Terra: 6378,388 km = sun_radius/109040.0f
Marte: equatoriale: 3402,45 km = sun_radius/204411.0f
Giove: equatoriale: 71492 km = sun_radius/9728.0f
Saturno: equatoriale: 60268 km = sun_radius/11540.0f
Urano: equatoriale: 25559 km = sun_radius/27211.0f
Nettuno: equatoriale: 24764 km = sun_radius/28085.0f
--------
Luna: earth_radius * 1/3.67f
Plutone: 1153 Km = sun_radius/603209.02f
'RAGGI DI RIVOLUZIONE IN RAPPORTO AL SOLE' (a partire dalla superficie esterna del sole )
Mercurio:  57.91 milioni di Km =         sun_radius * 1/12.0f
Venere:    108 milioni di Km   =         sun_radius * 1/6.439814815f
Terra:     149.6 milioni di Km =         sun_radius * 1/4.649064171f
Marte: 227.94 milioni di Km =            sun_radius * 1/3.051241555f
Giove: 778.4 milioni di Km =             sun_radius * 1.119194824f
Saturno: 1426.98 milioni di Km =         sun_radius * 2.051732566f
Urano: 2870 milioni di Km  =             sun_radius * 4.126527678f
Nettuno: 4497 milioni di Km =            sun_radius * 6.465851905f
--------
Luna (rispetto alla terra) 385104 Km =   earth_radius * 60.3763835f
Plutone: 5900 milioni di Km =            sun_radius * 8.489208633f

Screenshot del lavoro svolto

Questa prima vista, dell’immagine 15, è stata scelta per l’impatto suggestivo che offre, in particolare senza griglia nell’immagine 16, e si è cercata una angolazione simile a quella dell’immagine 1.

Vista ravvicinata
Immagine 15: Vista ravvicinata
Senza griglia
Immagine 16: Vista ravvicinata senza griglia
Blending
Immagine 17: Vista con modalità blending

L’immagini 18 e 19 mostrano alcuni aspetti importanti, dovuti al fatto che rappresentano due momenti successivi nell’animazione

Non è possibile apprezzare tramite uno screenshot, ma di sicuro è particolarmente di impatto il fatto che con lo svolgersi della rivoluzione della Terra attorno al Sole si susseguono le stagioni terrestri. Questo avviene grazie al fatto che nell’arco dei 360° dell’orbita la Terra si trova (il 21 Giugno nella realtà) con l’emisfero nord che punta sul Sole e in un altro momento (il 21 Dicembre nella realtà) con l’emisfero sud che punta sul sole (il nostro inverno).

Terra Luna Sole
Immagine 18: Vista sistema Terra/Luna/Sole
Terra Luna Sole 2
Immagine 19: Vista sistema Terra/Luna/Sole 2

L’immagine 20, che segue, mostra anche Plutone nella sua orbita inclinata di circa 17° rispetto all’eclittica (lo si può osservare nell’angolo in alto a destra). Il pianeta può essere ingrandito o ridotto premendo durante l’animazione i tasti d e D. In questo caso è stato leggermente ingrandito.

Vista complessiva
Immagine 20: Vista complessiva

Ed ecco aggiunti al nostro modello, in orbita attorno al Sole, degli asteroidi, così come nell’immagine tratta da Wikipedia

Asteroidi
Immagine 21: Asteroidi

Helper

Segue l’helper visualizzato quando si preme il tasto h

Helper
Immagine 22: Helper

Object picking

Il pianeta selezionato tramite object picking è evidenziato tramite blending. Si ricorda che per entrare in modalità object picking basta premere il tasto p e premerlo nuovamente per uscirne.

Sole
Immagine 23: Sole
Mercurio
Immagine 24: Mercurio
Venere
Immagine 25: Venere
Terra
Immagine 26: Terra
Luna
Immagine 27: Luna
Marte
Immagine 28: Marte
Giove
Immagine 29: Giove
Saturno
Immagine 30: Saturno
Urano
Immagine 31: Urano
Nettuno
Immagine 32: Nettuno
Plutone
Immagine 33: Plutone

Video dimostrativi

Demo 1

Demo 2

Slide di presentazione

Presentazione