// // Name: Objetos del libro "Guía del Firmamento" // License: Public Domain // Author: elinformatico // Description: Un recorrido por los objetos celestes // del libro "Guía del Firmamento" de Jose Luis Comellas
// Requiere "comellas.inc"
// Base de datos de objetos por Patricio Leiva // // // --------------------------------------------------- var SLEW = 3; // velocidad del slew en segundos var FOV = 3; // FOV (Field of view) en grados var cx = 20; // posicion horizontal del texto informativo var cy = 20; // posicion vertical del texto informativo var ml = true // mostrar lineas de constelaciones (true/false) // ---------------------------------------------------- include("comellas.inc"); var cons = new Array("Osa Menor + Dragón + Cefeo + Jirafa","Osa Mayor + Perros de caza","Dragón + Cefeo","Cassiopeia", "Jirafa + Lince","León + Sextante","Virgo + Cabellera de Berenice","Hydra + Brújula + Cuervo + Centauro", "Libra + Lupus","Boyero + Corona Borealis","Hércules","Serpiente + Ofiuco","Escorpión + Ofiuco", "Sagitario + Scutum + Corona Australis","Águila + Sagitta + Delphinus + Equuleus","Lira + Cisne + Zorrilla", "Capricornio + Acuario + Peces","Pez Austral + Escultor + Microscopio","Pegaso", "Lagarto + Andrómeda + Triángulo","Aries + Peces","Ballena","Eridanus + Horno","Perseo","Auriga","Tauro", "Géminis + Cáncer","Orión + Liebre + Columba","Can Mayor + Can Menor","Unicornio + Orión","Puppis"); var cone = new Array("Ursa Minor","Ursa Major","Draco","Cassiopeia","Camelopardalis", "Leo","Virgo","Hydra","Libra","Bootes", "Hercules","Serpens","Scorpius","Sagittarius","Aquila","Lyra", "Capricornus","Piscis Austrinus","Pegasus","Lacerta","Aries","Cetus","Eridanus", "Perseus","Auriga","Taurus","Gemini","Orion","Canis Major","Monoceros","Puppis", "Cefeo","Perros de caza","Lince","Sextante","Cabellera de Berenice","Brújula", "Cuervo","Centauro","Lupus","Corona Borealis","Ofiuco","Escudo","Corona Australis", "Sagitta","Delphinus","Equuleus","Cisne","Zorrilla","Acuario","Peces","Escultor", "Microscopio","Andrómeda","Triángulo","Horno","Cáncer","Liebre","Columba","Can Menor","Copa","Leon Menor"); var conr= new Array( "UMi","UMa","Dra","Cas","Cam","Leo","Vir","Hya","Lib", "Boo","Her","Ser","Sco","Sgr","Aql","Lyr","Cap","PsA", "Peg","Lac","Ari","Cet","Eri","Per","Aur","Tau","Gem", "Ori","CMa","Mon","Pup","Cep","CVn","Lyn","Sex","Com", "Pyx","Crv","Cen","Lup","CrB","Oph","Sct","CrA","Sgt", "Del","Equ","Cyg","Vul","Aqr","Psc","Scl","Mic","And", "Tri","For","Can","Lep","Col","CMi","Crt","LMi"); var ssn= new Array("Circumpolar","Primavera","Verano","Otoño","Invierno"); var ssm = new Array(0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4) // indice var conz = new Array(7,335,863,1311,1703,1967,2383,3095,3503,3655, 3935,4159,4535,5031,5615,6103,6863,7271,7367,7639,8079,8287,8759,8951, 9375,9711,10119,10647,11479,11879,12311,12679); var mnt = core.getMountMode(); // obtener montura utilizada var lin = ConstellationMgr.getFlagLines(); // obtener config. usuario lineas constelaciones var le = 0; core.selectObjectByName(cone[le],true); Menu(); function Menu(){ core.setRealTime(); StelMovementMgr.zoomTo(60,SLEW); // FOV inicial 60 core.clear("natural"); LandscapeMgr.setFlagCardinalsPoints(true); StarMgr.setFlagStars(true); StarMgr.setFlagLabels(true); NebulaMgr.setFlagHints(false); ConstellationMgr.setFlagLines(ml); ConstellationMgr.setFlagBoundaries(false); ConstellationMgr.setFlagIsolateSelected(false); ConstellationMgr.setFlagArt(false); ConstellationMgr.setFlagLabels(false); LabelMgr.deleteAllLabels(); StelMovementMgr.setFlagTracking(true); core.setTimeRate(0); var opx = LabelMgr.labelScreen("Para elegir constelación pulse +,=,M. Para seleccionarla pulse B",12,28,false,18,"#FF0000"); LabelMgr.setLabelShow(opx, true); var opy = LabelMgr.labelScreen("by elinformatico",12,115,false,14,"#FF0000"); LabelMgr.setLabelShow(opy, true); ConstellationMgr.setFlagLabels(true); var rp = ssm[le]; var optg = LabelMgr.labelScreen(ssn[rp],10,50,false,18,"#FF0000"); LabelMgr.setLabelShow(optg, true); // lista de constelaciones var opt = LabelMgr.labelScreen(cons[le] + " (" + (conz[le+1]-conz[le])/8+ " objetos)" + " Pagina: " + objetos[conz[le]],160,50,false,18,"#009900"); LabelMgr.setLabelShow(opt, true); if (le<=29){ var opt1 = LabelMgr.labelScreen(cons[le+1] + " (" + (conz[le+2]-conz[le+1])/8+ " objetos)" + " Pagina: " + objetos[conz[le+1]],160,72,false,18,"#990000"); LabelMgr.setLabelShow(opt1, true); } if (le<=28){ var opt2 = LabelMgr.labelScreen(cons[le+2] + " (" + (conz[le+3]-conz[le+2])/8+ " objetos)" + " Pagina: " + objetos[conz[le+2]],160,94,false,18,"#660000"); LabelMgr.setLabelShow(opt2, true); } if (le==29) { var opt2 = LabelMgr.labelScreen(cons[le-29] + " (" + (conz[le-28]-conz[le-29])/8+ " objetos)" + " Pagina: " + objetos[conz[le-29]],160,94,false,18,"#660000"); LabelMgr.setLabelShow(opt2, true); } if (le==30) { var opt1 = LabelMgr.labelScreen(cons[0] + " (" + (conz[1]-conz[0])/8+ " objetos)" + " Pagina: " + objetos[conz[0]],160,72,false,18,"#990000"); LabelMgr.setLabelShow(opt1, true); var opt2 = LabelMgr.labelScreen(cons[1] + " (" + (conz[2]-conz[1])/8+ " objetos)" + " Pagina: " + objetos[conz[1]],160,94,false,18,"#660000"); LabelMgr.setLabelShow(opt2, true); } var rp1=0; // bucle del menú d = Math.floor(core.getJDay()); var r = d; t = ConstellationMgr.getFlagBoundaries(); while (t==false) { r = Math.floor(core.getJDay()); if (Math.abs(r-d) > 0) { LabelMgr.setLabelShow(opt, false); LabelMgr.setLabelShow(opt1, false); LabelMgr.setLabelShow(opt2, false); if (le==30) { le = 0; }else{ le = le + 1; } rp = ssm[le]; if (rp!=rp1) { LabelMgr.setLabelShow(optg, false); var optg = LabelMgr.labelScreen(ssn[rp],10,50,false,18,"#FF0000"); LabelMgr.setLabelShow(optg, true); rp1=rp; } var opt = LabelMgr.labelScreen(cons[le] + " (" + (conz[le+1]-conz[le])/8+ " objetos)" + " Pagina: " + objetos[conz[le]],160,50,false,18,"#009900"); LabelMgr.setLabelShow(opt, true); if (le<=29) { var opt1 = LabelMgr.labelScreen(cons[le+1] + " (" + (conz[le+2]-conz[le+1])/8+ " objetos)" + " Pagina: " + objetos[conz[le+1]],160,72,false,18,"#990000"); LabelMgr.setLabelShow(opt1, true); } if (le<=28) { var opt2 = LabelMgr.labelScreen(cons[le+2] + " (" + (conz[le+3]-conz[le+2])/8+ " objetos)" + " Pagina: " + objetos[conz[le+2]],160,94,false,18,"#660000"); LabelMgr.setLabelShow(opt2, true); } if (le==29) { var opt2 = LabelMgr.labelScreen(cons[le-29] + " (" + (conz[le-28]-conz[le-29])/8+ " objetos)" + " Pagina: " + objetos[conz[le-29]],160,94,false,18,"#660000"); LabelMgr.setLabelShow(opt2, true); } if (le==30) { var opt1 = LabelMgr.labelScreen(cons[0] + " (" + (conz[1]-conz[0])/8+ " objetos)" + " Pagina: " + objetos[conz[0]],160,72,false,18,"#990000"); LabelMgr.setLabelShow(opt1, true); var opt2 = LabelMgr.labelScreen(cons[1] + " (" + (conz[2]-conz[1])/8+ " objetos)" + " Pagina: " + objetos[conz[1]],160,94,false,18,"#660000"); LabelMgr.setLabelShow(opt2, true); } core.setDate("-1 days"); core.selectObjectByName(cone[le]); StelMovementMgr.setFlagTracking(true); } t = ConstellationMgr.getFlagBoundaries(); } // cielo profundo LabelMgr.deleteAllLabels(); ConstellationMgr.setFlagBoundaries(false); core.selectObjectByName(cone[le],true); StelMovementMgr.setFlagTracking(true); ConstellationMgr.setFlagLabels(false); LandscapeMgr.setFlagLandscape(false); ConstellationMgr.setFlagLines(ml); StarMgr.setFlagLabels(true); StarMgr.setFlagStars(true); NebulaMgr.setFlagHints(true); NebulaMgr.setFlagShow(true); LandscapeMgr.setFlagAtmosphere(false); LandscapeMgr.setFlagFog(false); LandscapeMgr.setFlagCardinalsPoints(false); var flg = 0; var i=conz[le]; // obtener datos Co = objetos[i-7]; Ra = objetos[i-6]; Dec= objetos[i-5]; Info1 = objetos[i-4]; Info2 = objetos[i-3]; Info3 = objetos[i-2]; Info4 = objetos[i-1]; Pag = objetos[i]; Co2 = objetos[i+1]; Ra2 = objetos[i+2]; Dec2 = objetos [i+3]; Info2_1 = objetos[i+4]; Info2_2 = objetos [i+5]; Info2_3 = objetos [i+6]; Info2_4 = objetos [i+7]; Pag2 = objetos[i+8]; if (Co2 != Co) { flg=1; } // mover y centrar objeto core.moveToRaDecJ2000(Ra,Dec); StelMovementMgr.zoomTo(FOV,SLEW); // mostrar datos del objeto var label = LabelMgr.labelScreen(Info1 + " " + Info2 + " - " + Info3 + " " + Info4 + " - " + Co + " - Página " + Pag,cx,cy-5,false,18,"#FF0000"); LabelMgr.setLabelShow(label, true); var label = LabelMgr.labelScreen("Ra: " + Ra,cx,cy + 20,false,14,"#FF0000"); LabelMgr.setLabelShow(label, true); var label = LabelMgr.labelScreen("Dec: " + Dec,cx,cy + 40,false,14,"#FF0000"); LabelMgr.setLabelShow(label, true); var label = LabelMgr.labelScreen("Siguiente: " + Info2_1 + " " + Info2_2 + " - " + Info2_3 + " " + Info2_4 + " - " + Co2 + " - Pagina " + Pag2,cx,cy + 56,false,18,"#FF0000"); LabelMgr.setLabelShow(label, true); var label = LabelMgr.labelScreen("Ra: " + Ra2,cx,cy + 84,false,14,"#FF0000"); LabelMgr.setLabelShow(label, true); var label = LabelMgr.labelScreen("Dec: " + Dec2,cx,cy + 104,false,14,"#FF0000"); LabelMgr.setLabelShow(label, true); var label = LabelMgr.labelScreen("Siguiente: +,=,M. Otra constelacion: B. Salir: N",cx,cy+120,false,17,"#990000"); LabelMgr.setLabelShow(label, true); i = i + 8; var la = (((conz[le+1]-conz[le])/8) - ((conz[le+1]-i)/8)); var lb = (conz[le+1]-conz[le])/8; var label = LabelMgr.labelScreen("Objeto " + la + " de " + lb,cx,cy+140,false,17,"#990000"); LabelMgr.setLabelShow(label, true); // bucle cielo profundo var le2 = le; var d = Math.floor(core.getJDay()); var r = d; while (i <= 12679){ // ultimo objeto b = ConstellationMgr.getFlagBoundaries(); if (b==true) { ConstellationMgr.setFlagLines(false); Menu(le); //enviar indice constelacion actual } n = NebulaMgr.getFlagHints(); if (n==false) { Stop(); } r = Math.floor(core.getJDay()); if (Math.abs(r-d) > 0) { core.setDate("-1 days"); LabelMgr.deleteAllLabels(); Co = objetos[i-7]; Ra = objetos[i-6]; Dec= objetos[i-5]; Info1 = objetos[i-4]; Info2 = objetos[i-3]; Info3 = objetos[i-2]; Info4 = objetos[i-1]; Pag = objetos[i]; if(i < 12671) // no buscar siguiente info si es el último objeto { Co2 = objetos[i+1]; Ra2 = objetos[i+2]; Dec2 = objetos [i+3]; Info2_1 = objetos[i+4]; Info2_2 = objetos [i+5]; Info2_3 = objetos [i+6]; Info2_4 = objetos [i+7]; Pag2 = objetos [i+8]; } // ir al objeto core.moveToRaDecJ2000(Ra,Dec,SLEW); // indicar cambio de grupo de constelacion if (le>le2) { if (le==31) { le = 0; }else{ if (le==5 || le==10 || le==16 || le==23) { rp=ssm[le]; var labela = LabelMgr.labelScreen("Constelaciones de " + ssn[rp],430,260,false,20,"#FF0000"); LabelMgr.setLabelShow(labela,true); } var labelb = LabelMgr.labelScreen("- " + cons[le] + " -",430,280,false,18,"#FF0000"); LabelMgr.setLabelShow(labelb,true); le2=le; core.wait(3); LabelMgr.setLabelShow(labela,false); LabelMgr.setLabelShow(labelb,false); } } //indicar objeto fuera del grupo if (flg==1) { for (m=0;m<=61;m++) { if(conr[m]==Co) { var st=cone[m]; var labelb = LabelMgr.labelScreen("Entrando en " + st,430,300,false,18,"#FF0000"); LabelMgr.setLabelShow(labelb,true); core.wait(2); LabelMgr.setLabelShow(labelb,false); } } flg=0; } if (Co2 != Co) { flg=1; } var inf = LabelMgr.labelScreen(Info1 + " " + Info2 + " - " + Info3 + " " + Info4 +" - "+ Co + " - Página " + Pag,cx,cy-5,false,18,"#FF0000"); LabelMgr.setLabelShow(inf, true); var label = LabelMgr.labelScreen("Ra: " + Ra,cx,cy+20,false,14,"#FF0000"); LabelMgr.setLabelShow(label, true); var label = LabelMgr.labelScreen("Dec: " + Dec,cx,cy+40,false,14,"#FF0000"); LabelMgr.setLabelShow(label, true); if(i < 12671) // no mostrar siguiente info si es el último objeto { var label = LabelMgr.labelScreen("Siguiente: " + Info2_1 + " " + Info2_2 + " - " + Info2_3 + " " + Info2_4 + " - " + Co2 + " -Pagina " + Pag2,cx,cy + 56,false,18,"#FF0000"); LabelMgr.setLabelShow(label, true); var label = LabelMgr.labelScreen("Ra: " + Ra2,cx,cy + 80,false,14,"#FF0000"); LabelMgr.setLabelShow(label, true); var label = LabelMgr.labelScreen("Dec: " + Dec2,cx,cy + 100,false,14,"#FF0000"); LabelMgr.setLabelShow(label, true); var label = LabelMgr.labelScreen("Siguiente: +,=,M. Otra constelacion: B. Salir: N",cx,cy+120,false,17,"#990000"); LabelMgr.setLabelShow(label, true); } i = i + 8; la = (((conz[le+1]-conz[le])/8) - ((conz[le+1] -i)/8)); lb = (conz[le+1]-conz[le])/8; var label = LabelMgr.labelScreen("Objeto " + la + " de " + lb,cx,cy+140,false,17,"#990000"); LabelMgr.setLabelShow(label, true); if(la == lb ) { le = le + 1; } } } le=0; core.selectObjectByName(cone[le],true); Menu(); } function Stop() { core.setRealTime(); // restaurar hora core.setTimeRate(1); // restaurar velocidad del tiempo core.clear("natural"); LandscapeMgr.setFlagCardinalsPoints(true); // restaurar puntos cardinales core.setMountMode(mnt); // restaurar montura utilizada ConstellationMgr.setFlagLines(lin); //restaurar lineas constelaciones StelMovementMgr.zoomTo(60); // restaurar zoom StarMgr.setFlagStars(true); StarMgr.setFlagLabels(true); var label = LabelMgr.labelScreen("SCRIPT FINALIZADO",400,350,false,20,"#990000"); LabelMgr.setLabelShow(label, true); core.goHome(); core.wait(3); core.exit(); }