Scripts i Stellarium

Stellarium er et planetarieprogram, der simulerer stjernehimmelen. Man kan programmere i dette, og redigeringsværktøjet åbner man ved i Stellarium at trykke på F12.

Den hurtigste måde at komme i gang med at scripte, er ved at åbne et af de eksisterende scripts, afvikle scriptet og derefter sammenligne koden med det, man ser på skærmen.

I linkene herunder er der hjælp at hente, når man leder efter en bestemt funktion, man vil udføre.

Klasser, som brugere kan anvende i scripting
core kalder mulige funktioner i StelMainScriptApi

Derudover kan man kalde følgende objekter direkte
ConstellationMgr
GridLinesMgr
LabelMgr
LandscapeMgr
MeteorShowerMgr
NebulaMgr
ScreenImageMgr
SolarSystem
StarMgr
StelAudioMgr
StelVideoMgr
StelMovementMgr
StelSkyDrawer
StelSkyLayerMgr

En komplet liste kan man se her.

Eksempel – Betelgeuse
Man klikker på linket ovenfor, hvor man så ser, hvilke metoder, der er tilladte på hvert objekt, og der står også hvilke parametre, man kan tildele en metode.

Eksempel: Man vil tænde Ækvatorealsystemets linier, og derefter hoppe hen på Betelgeuse og zomme ind på den. Det kan skrives som

GridLinesMgr.setFlagEquatorGrid(true); Her tændes ækvatorealkoordinatsystemet
core.selectObjectByName(”Betelgeuse”,true); Her vælges Betelgeuse og sigtekornet er tændt. (Man kan slukke sigtekornet ved at erstatte true med false.)
StelMovementMgr.setFlagTracking(true); Endelig drejes hen til det valgte objekt, som i vores tilfælde er Betelgeuse.
StelMovementMgr.zoomTo(5,7); Her zoomes ind til et synsfelt på 5 grader og zoomprocessen skal tage 7 sek.

Eksempel – Udforsk Andromeda
Herunder er et kort eksempel på et script, der udpeger stjernebilledet Andromeda – viser konstellationslinier samt navn, derefter mytologisk grafik, og endelig zoomes der ind på Andromedagalaksen inden man går tilbage til startpositionen.

// Name: Udforsk Orion
// License: Public Domain
// Author: Michael Andrew Dolan Moeller
//Description: Udforsk stjerner og taager i Andromeda

//Initialisering
core.setMinFps(30);
core.goHome();
core.clear(“natural”);
core.setProjectionMode(“Stereographic”);
LandscapeMgr.setFlagAtmosphere(false);
LandscapeMgr.setFlagFog(false);
LandscapeMgr.setFlagLandscape(false);
core.wait(5);

//Vaelg Andromeda og zoom ind.
core.selectObjectByName(“Andromeda”,false);
StelMovementMgr.setFlagTracking(true);
StelMovementMgr.zoomTo(70,10);
ConstellationMgr.setFlagIsolateSelected(true);

//Vis konstellationslinier og derefter kunstnerisk grafik.
core.wait(5);
ConstellationMgr.setFlagConstellationPick(“Andromeda”,false);
ConstellationMgr.setFlagLines(true);
ConstellationMgr.setFlagLabels(true);
core.wait(5);
ConstellationMgr.setFlagLines(false);
ConstellationMgr.setFlagLabels(false);
ConstellationMgr.setFlagArt(true);
core.wait(5);
ConstellationMgr.setFlagArt(false);

//Vis nabokonstellationerne
ConstellationMgr.setFlagIsolateSelected(false);

// core.wait(10);
ConstellationMgr.setFlagIsolateSelected(true);
core.selectObjectByName(“Andromeda”,false);
StelMovementMgr.setFlagTracking(true);
StelMovementMgr.zoomTo(50,10);
//core.wait(5);

//Besoeg galaksen M31.
ConstellationMgr.setFlagArt(false);
core.setSelectedObjectInfo(“None”);
core.selectObjectByName(“M31”,false);
StelMovementMgr.setFlagTracking(true);
StelMovementMgr.zoomTo(2,20);
core.wait(25);

// Afslut
core.goHome();
LandscapeMgr.setFlagLandscape(true);
core.exit();

Af koden ovenfor kan man se, at den består af en bunke klasser og objekter, som har tilknyttet metoder og egenskaber.

Reklamer