Advertisement
Guest User

Untitled

a guest
Mar 31st, 2014
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //
  2. // Name: Objetos del libro "Guía del Firmamento"
  3. // License: Public Domain
  4. // Author: elinformatico
  5. // Description: Un recorrido por los objetos celestes
  6. // del libro "Guía del Firmamento" de Jose Luis Comellas<br>
  7. // Requiere "comellas.inc"<br>
  8. // Base de datos de objetos por Patricio Leiva
  9. //
  10. //
  11. // ---------------------------------------------------
  12.  
  13. var SLEW = 3; // velocidad del slew en segundos
  14.  
  15. var FOV = 3; // FOV (Field of view) en grados
  16.  
  17. var cx = 20; // posicion horizontal del texto informativo
  18. var cy = 20; // posicion vertical del texto informativo
  19.  
  20. var ml = true // mostrar lineas de constelaciones (true/false)
  21.  
  22. // ----------------------------------------------------
  23.  
  24. include("comellas.inc");
  25.  
  26. var cons = new Array("Osa Menor + Dragón + Cefeo + Jirafa","Osa Mayor + Perros de caza","Dragón + Cefeo","Cassiopeia",
  27. "Jirafa + Lince","León + Sextante","Virgo + Cabellera de Berenice","Hydra + Brújula + Cuervo + Centauro",
  28. "Libra + Lupus","Boyero + Corona Borealis","Hércules","Serpiente + Ofiuco","Escorpión + Ofiuco",
  29. "Sagitario + Scutum + Corona Australis","Águila + Sagitta + Delphinus + Equuleus","Lira + Cisne + Zorrilla",
  30. "Capricornio + Acuario + Peces","Pez Austral + Escultor + Microscopio","Pegaso + Lagarto",
  31. "Andrómeda + Triangulo","Aries + Peces","Ballena","Eridanus + Horno","Perseo","Auriga","Tauro",
  32. "Géminis + Cáncer","Orión + Liebre + Columba","Canis Mayor + Can Menor","Unicornio + Orión","Puppis");
  33.  
  34. var cone = new Array("Ursa Minor","Ursa Major","Draco","Cassiopeia","Camelopardalis",
  35. "Leo","Virgo","Hydra","Libra","Bootes",
  36. "Hercules","Serpens","Scorpius","Sagittarius","Aquila","Lyra",
  37. "Capricornus","Piscis Austrinus","Pegasus","Andromeda","Aries","Cetus","Eridanus",
  38. "Perseus","Auriga","Taurus","Gemini","Orion","Canis Major","Monoceros","Puppis",
  39. "Cefeo","Perros de caza","Lince","Sextante","Cabellera de Berenice","Brújula",
  40. "Cuervo","Centauro","Lupus","Corona Borealis","Ofiuco","Escudo","Corona Australis",
  41. "Sagitta","Delphinus","Equuleus","Cisne","Zorrilla","Acuario","Peces","Escultor",
  42. "Microscopio","Lagarto","Triangulo","Horno","Cáncer","Liebre","Columba","Can Menor","Copa","Leon Menor");
  43.  
  44. var conr= new Array(
  45. "UMi","UMa","Dra","Cas","Cam","Leo","Vir","Hya","Lib",
  46. "Boo","Her","Ser","Sco","Sgr","Aql","Lyr","Cap","PsA",
  47. "Peg","And","Ari","Cet","Eri","Per","Aur","Tau","Gem",
  48. "Ori","CMa","Mon","Pup","Cep","CVn","Lyn","Sex","Com",
  49. "Pyx","Crv","Cen","Lup","CrB","Oph","Sct","CrA","Sgt",
  50. "Del","Equ","Cyg","Vul","Aqr","Psc","Scl","Mic","Lac",
  51. "Tri","For","Can","Lep","Col","CMi","Crt","LMi");
  52.  
  53. var ssn= new Array("Circumpolar","Primavera","Verano","Otoño","Invierno");
  54. 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)
  55.  
  56. // indice
  57. var conz = new Array(7,335,863,1311,1703,1967,2383,3095,3503,3655,
  58. 3935,4159,4535,5031,5615,6103,6863,7271,7367,7735,8079,8287,8759,8951,
  59. 9375,9711,10119,10647,11479,11879,12311,12679);
  60.  
  61. var mnt = core.getMountMode(); // obtener montura utilizada
  62. var lin = ConstellationMgr.getFlagLines(); // obtener config. usuario lineas constelaciones
  63.  
  64. var le = 0;
  65.  
  66. core.selectObjectByName(cone[le],true);
  67.  
  68. Menu();
  69.  
  70. function Menu(){
  71.  
  72. core.setRealTime();
  73.  
  74.  
  75. StelMovementMgr.zoomTo(60,SLEW); // FOV inicial 60
  76. core.clear("natural");
  77. LandscapeMgr.setFlagCardinalsPoints(true);
  78. StarMgr.setFlagStars(true);
  79. StarMgr.setFlagLabels(true);
  80. NebulaMgr.setFlagHints(false);
  81. ConstellationMgr.setFlagLines(ml);
  82. ConstellationMgr.setFlagBoundaries(false);
  83. ConstellationMgr.setFlagIsolateSelected(false);
  84. ConstellationMgr.setFlagArt(false);
  85. ConstellationMgr.setFlagLabels(false);
  86. LabelMgr.deleteAllLabels();
  87. StelMovementMgr.setFlagTracking(true);
  88.  
  89. core.setTimeRate(0);
  90.  
  91. var opt = LabelMgr.labelScreen("Para elegir constelación pulse +,=,M. Para seleccionarla pulse B",12,28,false,18,"#FF0000");
  92. LabelMgr.setLabelShow(opt, true);
  93.  
  94. var opt = LabelMgr.labelScreen("by elinformatico",12,115,false,14,"#FF0000");
  95. LabelMgr.setLabelShow(opt, true);
  96.  
  97. ConstellationMgr.setFlagLabels(true);
  98.  
  99. var rp = ssm[le];
  100. var optg = LabelMgr.labelScreen(ssn[rp],10,50,false,18,"#FF0000");
  101. LabelMgr.setLabelShow(optg, true);
  102.  
  103.  
  104. // lista de constelaciones
  105.  
  106. var opt = LabelMgr.labelScreen(cons[le] + " (" + (conz[le+1]-conz[le])/8+ " objetos)" + " Página: " + objetos[conz[le]],160,50,false,18,"#009900");
  107. LabelMgr.setLabelShow(opt, true);
  108.  
  109. if (le<=29){
  110. var opt1 = LabelMgr.labelScreen(cons[le+1] + " (" + (conz[le+2]-conz[le+1])/8+ " objetos)" + " Página: " + objetos[conz[le+1]],160,72,false,18,"#990000");
  111. LabelMgr.setLabelShow(opt1, true);
  112. }
  113. if (le<=28){
  114. var opt2 = LabelMgr.labelScreen(cons[le+2] + " (" + (conz[le+3]-conz[le+2])/8+ " objetos)" + " Página: " + objetos[conz[le+2]],160,94,false,18,"#660000");
  115. LabelMgr.setLabelShow(opt2, true);
  116. }
  117.  
  118.  
  119. // bucle del menú
  120.  
  121. d = Math.floor(core.getJDay());
  122. var r = d;
  123. t = ConstellationMgr.getFlagBoundaries();
  124. while (t==false)
  125. {
  126. r = Math.floor(core.getJDay());
  127. if (Math.abs(r-d) > 0)
  128. {
  129.  
  130. LabelMgr.setLabelShow(opt, false);
  131. LabelMgr.setLabelShow(opt1, false);
  132. LabelMgr.setLabelShow(opt2, false);
  133.  
  134. if (le==30)
  135. {
  136. le=0;
  137. }else{
  138. le = le + 1;
  139. }
  140.  
  141.  
  142. rp = ssm[le];
  143. LabelMgr.setLabelShow(optg, false);
  144. var optg = LabelMgr.labelScreen(ssn[rp],10,50,false,18,"#FF0000");
  145. LabelMgr.setLabelShow(optg, true);
  146.  
  147.  
  148. var opt = LabelMgr.labelScreen(cons[le] + " (" + (conz[le+1]-conz[le])/8+ " objetos)" + " Página: " + objetos[conz[le]],160,50,false,18,"#009900");
  149. LabelMgr.setLabelShow(opt, true);
  150.  
  151. if (le<=29)
  152. {
  153. var opt1 = LabelMgr.labelScreen(cons[le+1] + " (" + (conz[le+2]-conz[le+1])/8+ " objetos)" + " Página: " + objetos[conz[le+1]],160,72,false,18,"#990000");
  154. LabelMgr.setLabelShow(opt1, true);
  155. }
  156. if (le<=28)
  157. {
  158. var opt2 = LabelMgr.labelScreen(cons[le+2] + " (" + (conz[le+3]-conz[le+2])/8+ " objetos)" + " Página: " + objetos[conz[le+2]],160,94,false,18,"#660000");
  159. LabelMgr.setLabelShow(opt2, true);
  160. }
  161.  
  162. core.setDate("-1 days");
  163. //core.setRealTime();
  164. core.selectObjectByName(cone[le]);
  165. StelMovementMgr.setFlagTracking(true);
  166. }
  167. t = ConstellationMgr.getFlagBoundaries();
  168. }
  169.  
  170.  
  171. // cielo profundo
  172.  
  173. LabelMgr.deleteAllLabels();
  174. ConstellationMgr.setFlagBoundaries(false);
  175. core.selectObjectByName(cone[le],true);
  176. StelMovementMgr.setFlagTracking(true);
  177. ConstellationMgr.setFlagLabels(false);
  178. LandscapeMgr.setFlagLandscape(false);
  179. ConstellationMgr.setFlagLines(ml);
  180. StarMgr.setFlagLabels(true);
  181. StarMgr.setFlagStars(true);
  182. NebulaMgr.setFlagHints(true);
  183. NebulaMgr.setFlagShow(true);
  184. LandscapeMgr.setFlagAtmosphere(false);
  185. LandscapeMgr.setFlagFog(false);
  186. LandscapeMgr.setFlagCardinalsPoints(false);
  187.  
  188. var flg = 0;
  189.  
  190. i=conz[le];
  191.  
  192. // obtener datos
  193. Co = objetos[i-7];
  194. Ra = objetos[i-6];
  195. Dec= objetos[i-5];
  196. Info1 = objetos[i-4];
  197. Info2 = objetos[i-3];
  198. Info3 = objetos[i-2];
  199. Info4 = objetos[i-1];
  200. Pag = objetos[i];
  201.  
  202.  
  203. Co2 = objetos[i+1];
  204. Ra2 = objetos[i+2];
  205. Dec2 = objetos [i+3];
  206. Info2_1 = objetos[i+4];
  207. Info2_2 = objetos [i+5];
  208. Info2_3 = objetos [i+6];
  209. Info2_4 = objetos [i+7];
  210. Pag2 = objetos[i+8];
  211.  
  212.  
  213.  
  214. if (Co2 != Co)
  215. {
  216. flg=1;
  217. }
  218.  
  219.  
  220. // mover y centrar objeto
  221. core.moveToRaDecJ2000(Ra,Dec);
  222. StelMovementMgr.zoomTo(FOV,SLEW);
  223.  
  224. // mostrar datos del objeto
  225. var label = LabelMgr.labelScreen(Info1 + " " + Info2 + " - " + Info3 + " " + Info4 + " - " + Co + " - Página " + Pag,cx,cy-5,false,18,"#FF0000");
  226. LabelMgr.setLabelShow(label, true);
  227. var label = LabelMgr.labelScreen("Ra: " + Ra,cx,cy + 20,false,14,"#FF0000");
  228. LabelMgr.setLabelShow(label, true);
  229. var label = LabelMgr.labelScreen("Dec: " + Dec,cx,cy + 40,false,14,"#FF0000");
  230. LabelMgr.setLabelShow(label, true);
  231. var label = LabelMgr.labelScreen("Siguiente: " + Info2_1 + " " + Info2_2 + " - " + Info2_3 + " " + Info2_4 + " - " + Co2 + " - Página " + Pag2,cx,cy + 56,false,18,"#FF0000");
  232. LabelMgr.setLabelShow(label, true);
  233. var label = LabelMgr.labelScreen("Ra: " + Ra2,cx,cy + 84,false,14,"#FF0000");
  234. LabelMgr.setLabelShow(label, true);
  235. var label = LabelMgr.labelScreen("Dec: " + Dec2,cx,cy + 104,false,14,"#FF0000");
  236. LabelMgr.setLabelShow(label, true);
  237.  
  238. var label = LabelMgr.labelScreen("Siguiente: +,=,M. Otra constelacion: B. Salir: N",cx,cy+120,false,17,"#990000");
  239. LabelMgr.setLabelShow(label, true);
  240.  
  241. i = i + 8;
  242.  
  243. la = (((conz[le+1]-conz[le])/8) - ((conz[le+1]-i)/8));
  244. lb = (conz[le+1]-conz[le])/8;
  245. var label = LabelMgr.labelScreen("Objeto " + la + " de " + lb,cx,cy+140,false,17,"#990000");
  246. LabelMgr.setLabelShow(label, true);
  247.  
  248.  
  249. // bucle cielo profundo
  250.  
  251. var le2 = le;
  252.  
  253. var d = Math.floor(core.getJDay());
  254.  
  255. var r = d;
  256. while (i <= 12679){ // ultimo objeto
  257.  
  258.  
  259. b = ConstellationMgr.getFlagBoundaries();
  260. if (b==true){
  261. ConstellationMgr.setFlagLines(false);
  262. Menu(le); //enviar indice constelacion actual
  263. }
  264. n = NebulaMgr.getFlagHints();
  265. if (n==false){
  266. Stop();
  267. }
  268.  
  269. r = Math.floor(core.getJDay());
  270. if (Math.abs(r-d) > 0)
  271. {
  272.  
  273. core.setDate("-1 days");
  274. LabelMgr.deleteAllLabels();
  275.  
  276. Co = objetos[i-7];
  277. Ra = objetos[i-6];
  278. Dec= objetos[i-5];
  279. Info1 = objetos[i-4];
  280. Info2 = objetos[i-3];
  281. Info3 = objetos[i-2];
  282. Info4 = objetos[i-1];
  283. Pag = objetos[i];
  284.  
  285.  
  286.  
  287. if(i < 12671) // no buscar siguiente info si es el último objeto
  288. {
  289. Co2 = objetos[i+1];
  290. Ra2 = objetos[i+2];
  291. Dec2 = objetos [i+3];
  292. Info2_1 = objetos[i+4];
  293. Info2_2 = objetos [i+5];
  294. Info2_3 = objetos [i+6];
  295. Info2_4 = objetos [i+7];
  296. Pag2 = objetos [i+8];
  297. }
  298.  
  299. // ir al objeto
  300. core.moveToRaDecJ2000(Ra,Dec,SLEW);
  301.  
  302. // indicar cambio de grupo de constelacion
  303.  
  304. if (le>le2){
  305.  
  306. if (le==31){
  307. le=0;
  308. }else{
  309.  
  310. if (le==5 || le==10 || le==16 || le==23){
  311. rp=ssm[le];
  312. var labela = LabelMgr.labelScreen("Constelaciones de " + ssn[rp],430,260,false,20,"#FF0000");
  313. LabelMgr.setLabelShow(labela,true);
  314. }
  315.  
  316. var labelb = LabelMgr.labelScreen("- " + cons[le] + " -",430,280,false,18,"#FF0000");
  317. LabelMgr.setLabelShow(labelb,true);
  318.  
  319. le2=le;
  320. core.wait(3);
  321. LabelMgr.setLabelShow(labela,false);
  322. LabelMgr.setLabelShow(labelb,false);
  323.  
  324. }
  325. }
  326. //indicar objeto fuera del grupo
  327.  
  328. if (flg==1)
  329. {
  330. for (m=0;m<=61;m++)
  331. {
  332. if(conr[m]==Co)
  333. {
  334. var st=cone[m];
  335. var labelb = LabelMgr.labelScreen("Entrando en " + st,430,300,false,18,"#FF0000");
  336. LabelMgr.setLabelShow(labelb,true);
  337. core.wait(2);
  338. LabelMgr.setLabelShow(labelb,false);
  339. }
  340. }
  341. flg=0;
  342. }
  343.  
  344.  
  345. if (Co2 != Co)
  346. {
  347. flg=1;
  348. }
  349.  
  350. var inf = LabelMgr.labelScreen(Info1 + " " + Info2 + " - " + Info3 + " " + Info4 +" - "+ Co + " - Página " + Pag,cx,cy-5,false,18,"#FF0000");
  351. LabelMgr.setLabelShow(inf, true);
  352. var label = LabelMgr.labelScreen("Ra: " + Ra,cx,cy+20,false,14,"#FF0000");
  353. LabelMgr.setLabelShow(label, true);
  354. var label = LabelMgr.labelScreen("Dec: " + Dec,cx,cy+40,false,14,"#FF0000");
  355. LabelMgr.setLabelShow(label, true);
  356.  
  357. if(i < 12671) // no mostrar siguiente info si es el último objeto
  358. {
  359. var label = LabelMgr.labelScreen("Siguiente: " + Info2_1 + " " + Info2_2 + " - " + Info2_3 + " " + Info2_4 + " - " + Co2 + " - Página " + Pag2,cx,cy + 56,false,18,"#FF0000");
  360. LabelMgr.setLabelShow(label, true);
  361. var label = LabelMgr.labelScreen("Ra: " + Ra2,cx,cy + 80,false,14,"#FF0000");
  362. LabelMgr.setLabelShow(label, true);
  363. var label = LabelMgr.labelScreen("Dec: " + Dec2,cx,cy + 100,false,14,"#FF0000");
  364. LabelMgr.setLabelShow(label, true);
  365. var label = LabelMgr.labelScreen("Siguiente: +,=,M. Otra constelacion: B. Salir: N",cx,cy+120,false,17,"#990000");
  366. LabelMgr.setLabelShow(label, true);
  367. }
  368.  
  369. i = i + 8;
  370.  
  371. la = (((conz[le+1]-conz[le])/8) - ((conz[le+1] -i)/8));
  372. lb = (conz[le+1]-conz[le])/8;
  373. var label = LabelMgr.labelScreen("Objeto " + la + " de " + lb,cx,cy+140,false,17,"#990000");
  374. LabelMgr.setLabelShow(label, true);
  375.  
  376.  
  377.  
  378. if(la == lb )
  379. {
  380. le = le + 1;
  381. }
  382. //core.setRealTime();
  383. }
  384. }
  385. le=0;
  386. core.selectObjectByName(cone[le],true);
  387. Menu();
  388. }
  389.  
  390. function Stop()
  391. {
  392. core.setRealTime(); // restaurar hora
  393. core.setTimeRate(1); // restaurar velocidad del tiempo
  394. core.clear("natural");
  395. LandscapeMgr.setFlagCardinalsPoints(true); // restaurar puntos cardinales
  396. core.setMountMode(mnt); // restaurar montura utilizada
  397. ConstellationMgr.setFlagLines(lin); //restaurar lineas constelaciones
  398. StelMovementMgr.zoomTo(60); // restaurar zoom
  399. var label = LabelMgr.labelScreen("SCRIPT FINALIZADO",400,350,false,20,"#990000");
  400. LabelMgr.setLabelShow(label, true);
  401. core.wait(3);
  402. core.exit();
  403. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement