Ho appena installato JMP 15! Sembra fantastico!
Primi passi. Ho appena riscoperto il demone GPS gpsd in esecuzione sul mio server da tanto tempo fa ... che ho finito per non usare allora. Uno dei valori interessanti restituiti da un dispositivo GPS è l'azimut e l'elevazione dei satelliti che sta ascoltando. Posso usare la connessione socket di JMP alla porta gpsd per ottenere quei valori (dove prima usavo uno script Python che scriveva un file sul server che in seguito ho copiato su JMP.) Ma per rendere qualcosa come Questo , ho bisogno di un modello della Terra e dei satelliti GPS... che è questo post. Eseguire il JSL allegato; crea un modello 3D che puoi ruotare con il mouse. Questa immagine è statica, ma mostra le dimensioni relative della Terra e la distanza dall'orbita di un satellite GPS.
20,200 KM above surface, 26,600 KM radius. Two complete orbits each sidereal day.20.200 KM sopra la superficie, 26.600 KM di raggio. Due orbite complete ogni giorno siderale.
Normalmente la bitmap SimpleEarth viene visualizzata in un grafico piatto:
Example of SimpleEarth from the Air Traffic.JMP sampleEsempio di SimpleEarth dall'esempio Air Traffic.JMP
Ma la bitmap è disponibile anche (in una forma a bassa risoluzione) come otto riquadri. Il JSL assembla quei riquadri in una singola bitmap e li ridimensiona a una risoluzione ancora più bassa (per le prestazioni) e costruisce il modello della sfera da un insieme di poligoni a quattro lati con pixel di colore diverso a ogni angolo. Il motore 3D mostra i poligoni sfumati uniformemente e con un effetto di illuminazione uniforme. Con poligoni di 1 grado, ci sono solo 360x180 == 64.800 poligoni e le prestazioni sono ancora abbastanza buone. La creazione del modello richiede circa 10 secondi, ma il JSL mantiene il modello in un elenco di visualizzazione riutilizzabile. Una buona parte del JSL è stata presa in prestito e modificata da due dei campioni 3D in JMP: MaterialAndLight.jsl e Sheet.jsl. Cercali nella directory Samples/Scripts/Scene3D.
Anche, @jlsalmon ha un simile idea , utilizzando punti anziché poligoni ombreggiati.