Advertisement
Guest User

Untitled

a guest
Dec 10th, 2014
353
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.89 KB | None | 0 0
  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",
  31. "Lagarto + Andrómeda + Triángulo","Aries + Peces","Ballena","Eridanus + Horno","Perseo","Auriga","Tauro",
  32. "Géminis + Cáncer","Orión + Liebre + Columba","Can 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","Lacerta","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","Andrómeda","Triángulo","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","Lac","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","And",
  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,7639,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. StelMovementMgr.zoomTo(60,SLEW); // FOV inicial 60
  74. core.clear("natural");
  75. LandscapeMgr.setFlagCardinalsPoints(true);
  76. StarMgr.setFlagStars(true);
  77. StarMgr.setFlagLabels(true);
  78. NebulaMgr.setFlagHints(false);
  79. ConstellationMgr.setFlagLines(ml);
  80. ConstellationMgr.setFlagBoundaries(false);
  81. ConstellationMgr.setFlagIsolateSelected(false);
  82. ConstellationMgr.setFlagArt(false);
  83. ConstellationMgr.setFlagLabels(false);
  84. LabelMgr.deleteAllLabels();
  85. StelMovementMgr.setFlagTracking(true);
  86. core.setTimeRate(0);
  87.  
  88. var opx = LabelMgr.labelScreen("Para elegir constelación pulse +,=,M. Para seleccionarla pulse B",12,28,false,18,"#FF0000");
  89. LabelMgr.setLabelShow(opx, true);
  90.  
  91. var opy = LabelMgr.labelScreen("by elinformatico",12,115,false,14,"#FF0000");
  92. LabelMgr.setLabelShow(opy, true);
  93.  
  94. ConstellationMgr.setFlagLabels(true);
  95.  
  96. var rp = ssm[le];
  97. var optg = LabelMgr.labelScreen(ssn[rp],10,50,false,18,"#FF0000");
  98. LabelMgr.setLabelShow(optg, true);
  99.  
  100. // lista de constelaciones
  101.  
  102. var opt = LabelMgr.labelScreen(cons[le] + " (" + (conz[le+1]-conz[le])/8+ " objetos)" + " Pagina: " + objetos[conz[le]],160,50,false,18,"#009900");
  103. LabelMgr.setLabelShow(opt, true);
  104.  
  105. if (le<=29){
  106. 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");
  107. LabelMgr.setLabelShow(opt1, true);
  108. }
  109. if (le<=28){
  110. 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");
  111. LabelMgr.setLabelShow(opt2, true);
  112. }
  113. if (le==29)
  114. {
  115. 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");
  116. LabelMgr.setLabelShow(opt2, true);
  117. }
  118. if (le==30)
  119. {
  120. var opt1 = LabelMgr.labelScreen(cons[0] + " (" + (conz[1]-conz[0])/8+ " objetos)" + " Pagina: " + objetos[conz[0]],160,72,false,18,"#990000");
  121. LabelMgr.setLabelShow(opt1, true);
  122.  
  123. var opt2 = LabelMgr.labelScreen(cons[1] + " (" + (conz[2]-conz[1])/8+ " objetos)" + " Pagina: " + objetos[conz[1]],160,94,false,18,"#660000");
  124. LabelMgr.setLabelShow(opt2, true);
  125. }
  126.  
  127. var rp1=0;
  128.  
  129. // bucle del menú
  130.  
  131. d = Math.floor(core.getJDay());
  132. var r = d;
  133. t = ConstellationMgr.getFlagBoundaries();
  134. while (t==false)
  135. {
  136. r = Math.floor(core.getJDay());
  137. if (Math.abs(r-d) > 0)
  138. {
  139.  
  140. LabelMgr.setLabelShow(opt, false);
  141. LabelMgr.setLabelShow(opt1, false);
  142. LabelMgr.setLabelShow(opt2, false);
  143.  
  144. if (le==30)
  145. {
  146. le = 0;
  147. }else{
  148. le = le + 1;
  149. }
  150.  
  151. rp = ssm[le];
  152. if (rp!=rp1)
  153. {
  154. LabelMgr.setLabelShow(optg, false);
  155. var optg = LabelMgr.labelScreen(ssn[rp],10,50,false,18,"#FF0000");
  156. LabelMgr.setLabelShow(optg, true);
  157. rp1=rp;
  158. }
  159.  
  160.  
  161. var opt = LabelMgr.labelScreen(cons[le] + " (" + (conz[le+1]-conz[le])/8+ " objetos)" + " Pagina: " + objetos[conz[le]],160,50,false,18,"#009900");
  162. LabelMgr.setLabelShow(opt, true);
  163.  
  164. if (le<=29)
  165. {
  166. 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");
  167. LabelMgr.setLabelShow(opt1, true);
  168. }
  169. if (le<=28)
  170. {
  171. 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");
  172. LabelMgr.setLabelShow(opt2, true);
  173. }
  174. if (le==29)
  175. {
  176. 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");
  177. LabelMgr.setLabelShow(opt2, true);
  178. }
  179. if (le==30)
  180. {
  181. var opt1 = LabelMgr.labelScreen(cons[0] + " (" + (conz[1]-conz[0])/8+ " objetos)" + " Pagina: " + objetos[conz[0]],160,72,false,18,"#990000");
  182. LabelMgr.setLabelShow(opt1, true);
  183.  
  184. var opt2 = LabelMgr.labelScreen(cons[1] + " (" + (conz[2]-conz[1])/8+ " objetos)" + " Pagina: " + objetos[conz[1]],160,94,false,18,"#660000");
  185. LabelMgr.setLabelShow(opt2, true);
  186. }
  187.  
  188. core.setDate("-1 days");
  189. core.selectObjectByName(cone[le]);
  190. StelMovementMgr.setFlagTracking(true);
  191. }
  192. t = ConstellationMgr.getFlagBoundaries();
  193. }
  194.  
  195.  
  196. // cielo profundo
  197.  
  198. LabelMgr.deleteAllLabels();
  199. ConstellationMgr.setFlagBoundaries(false);
  200. core.selectObjectByName(cone[le],true);
  201. StelMovementMgr.setFlagTracking(true);
  202. ConstellationMgr.setFlagLabels(false);
  203. LandscapeMgr.setFlagLandscape(false);
  204. ConstellationMgr.setFlagLines(ml);
  205. StarMgr.setFlagLabels(true);
  206. StarMgr.setFlagStars(true);
  207. NebulaMgr.setFlagHints(true);
  208. NebulaMgr.setFlagShow(true);
  209. LandscapeMgr.setFlagAtmosphere(false);
  210. LandscapeMgr.setFlagFog(false);
  211. LandscapeMgr.setFlagCardinalsPoints(false);
  212.  
  213. var flg = 0;
  214.  
  215. var i=conz[le];
  216.  
  217. // obtener datos
  218.  
  219. Co = objetos[i-7];
  220. Ra = objetos[i-6];
  221. Dec= objetos[i-5];
  222. Info1 = objetos[i-4];
  223. Info2 = objetos[i-3];
  224. Info3 = objetos[i-2];
  225. Info4 = objetos[i-1];
  226. Pag = objetos[i];
  227.  
  228. Co2 = objetos[i+1];
  229. Ra2 = objetos[i+2];
  230. Dec2 = objetos [i+3];
  231. Info2_1 = objetos[i+4];
  232. Info2_2 = objetos [i+5];
  233. Info2_3 = objetos [i+6];
  234. Info2_4 = objetos [i+7];
  235. Pag2 = objetos[i+8];
  236.  
  237. if (Co2 != Co)
  238. {
  239. flg=1;
  240. }
  241.  
  242. // mover y centrar objeto
  243.  
  244. core.moveToRaDecJ2000(Ra,Dec);
  245. StelMovementMgr.zoomTo(FOV,SLEW);
  246.  
  247. // mostrar datos del objeto
  248.  
  249. var label = LabelMgr.labelScreen(Info1 + " " + Info2 + " - " + Info3 + " " + Info4 + " - " + Co + " - Página " + Pag,cx,cy-5,false,18,"#FF0000");
  250. LabelMgr.setLabelShow(label, true);
  251. var label = LabelMgr.labelScreen("Ra: " + Ra,cx,cy + 20,false,14,"#FF0000");
  252. LabelMgr.setLabelShow(label, true);
  253. var label = LabelMgr.labelScreen("Dec: " + Dec,cx,cy + 40,false,14,"#FF0000");
  254. LabelMgr.setLabelShow(label, true);
  255. var label = LabelMgr.labelScreen("Siguiente: " + Info2_1 + " " + Info2_2 + " - " + Info2_3 + " " + Info2_4 + " - " + Co2 + " - Pagina " + Pag2,cx,cy + 56,false,18,"#FF0000");
  256. LabelMgr.setLabelShow(label, true);
  257. var label = LabelMgr.labelScreen("Ra: " + Ra2,cx,cy + 84,false,14,"#FF0000");
  258. LabelMgr.setLabelShow(label, true);
  259. var label = LabelMgr.labelScreen("Dec: " + Dec2,cx,cy + 104,false,14,"#FF0000");
  260. LabelMgr.setLabelShow(label, true);
  261. var label = LabelMgr.labelScreen("Siguiente: +,=,M. Otra constelacion: B. Salir: N",cx,cy+120,false,17,"#990000");
  262. LabelMgr.setLabelShow(label, true);
  263.  
  264. i = i + 8;
  265.  
  266. var la = (((conz[le+1]-conz[le])/8) - ((conz[le+1]-i)/8));
  267. var lb = (conz[le+1]-conz[le])/8;
  268. var label = LabelMgr.labelScreen("Objeto " + la + " de " + lb,cx,cy+140,false,17,"#990000");
  269. LabelMgr.setLabelShow(label, true);
  270.  
  271.  
  272. // bucle cielo profundo
  273.  
  274. var le2 = le;
  275.  
  276. var d = Math.floor(core.getJDay());
  277.  
  278. var r = d;
  279. while (i <= 12679){ // ultimo objeto
  280.  
  281. b = ConstellationMgr.getFlagBoundaries();
  282. if (b==true)
  283. {
  284. ConstellationMgr.setFlagLines(false);
  285. Menu(le); //enviar indice constelacion actual
  286. }
  287. n = NebulaMgr.getFlagHints();
  288. if (n==false)
  289. {
  290. Stop();
  291. }
  292.  
  293. r = Math.floor(core.getJDay());
  294. if (Math.abs(r-d) > 0)
  295. {
  296.  
  297. core.setDate("-1 days");
  298. LabelMgr.deleteAllLabels();
  299.  
  300. Co = objetos[i-7];
  301. Ra = objetos[i-6];
  302. Dec= objetos[i-5];
  303. Info1 = objetos[i-4];
  304. Info2 = objetos[i-3];
  305. Info3 = objetos[i-2];
  306. Info4 = objetos[i-1];
  307. Pag = objetos[i];
  308.  
  309.  
  310.  
  311. if(i < 12671) // no buscar siguiente info si es el último objeto
  312. {
  313. Co2 = objetos[i+1];
  314. Ra2 = objetos[i+2];
  315. Dec2 = objetos [i+3];
  316. Info2_1 = objetos[i+4];
  317. Info2_2 = objetos [i+5];
  318. Info2_3 = objetos [i+6];
  319. Info2_4 = objetos [i+7];
  320. Pag2 = objetos [i+8];
  321. }
  322.  
  323. // ir al objeto
  324. core.moveToRaDecJ2000(Ra,Dec,SLEW);
  325.  
  326. // indicar cambio de grupo de constelacion
  327.  
  328. if (le>le2)
  329. {
  330. if (le==31)
  331. {
  332. le = 0;
  333. }else{
  334.  
  335. if (le==5 || le==10 || le==16 || le==23)
  336. {
  337. rp=ssm[le];
  338. var labela = LabelMgr.labelScreen("Constelaciones de " + ssn[rp],430,260,false,20,"#FF0000");
  339. LabelMgr.setLabelShow(labela,true);
  340. }
  341.  
  342. var labelb = LabelMgr.labelScreen("- " + cons[le] + " -",430,280,false,18,"#FF0000");
  343. LabelMgr.setLabelShow(labelb,true);
  344. le2=le;
  345. core.wait(3);
  346. LabelMgr.setLabelShow(labela,false);
  347. LabelMgr.setLabelShow(labelb,false);
  348. }
  349. }
  350. //indicar objeto fuera del grupo
  351.  
  352. if (flg==1)
  353. {
  354. for (m=0;m<=61;m++)
  355. {
  356. if(conr[m]==Co)
  357. {
  358. var st=cone[m];
  359. var labelb = LabelMgr.labelScreen("Entrando en " + st,430,300,false,18,"#FF0000");
  360. LabelMgr.setLabelShow(labelb,true);
  361. core.wait(2);
  362. LabelMgr.setLabelShow(labelb,false);
  363. }
  364. }
  365. flg=0;
  366. }
  367. if (Co2 != Co)
  368. {
  369. flg=1;
  370. }
  371.  
  372. var inf = LabelMgr.labelScreen(Info1 + " " + Info2 + " - " + Info3 + " " + Info4 +" - "+ Co + " - Página " + Pag,cx,cy-5,false,18,"#FF0000");
  373. LabelMgr.setLabelShow(inf, true);
  374. var label = LabelMgr.labelScreen("Ra: " + Ra,cx,cy+20,false,14,"#FF0000");
  375. LabelMgr.setLabelShow(label, true);
  376. var label = LabelMgr.labelScreen("Dec: " + Dec,cx,cy+40,false,14,"#FF0000");
  377. LabelMgr.setLabelShow(label, true);
  378.  
  379. if(i < 12671) // no mostrar siguiente info si es el último objeto
  380. {
  381. var label = LabelMgr.labelScreen("Siguiente: " + Info2_1 + " " + Info2_2 + " - " + Info2_3 + " " + Info2_4 + " - " + Co2 + " -Pagina " + Pag2,cx,cy + 56,false,18,"#FF0000");
  382. LabelMgr.setLabelShow(label, true);
  383. var label = LabelMgr.labelScreen("Ra: " + Ra2,cx,cy + 80,false,14,"#FF0000");
  384. LabelMgr.setLabelShow(label, true);
  385. var label = LabelMgr.labelScreen("Dec: " + Dec2,cx,cy + 100,false,14,"#FF0000");
  386. LabelMgr.setLabelShow(label, true);
  387. var label = LabelMgr.labelScreen("Siguiente: +,=,M. Otra constelacion: B. Salir: N",cx,cy+120,false,17,"#990000");
  388. LabelMgr.setLabelShow(label, true);
  389. }
  390.  
  391. i = i + 8;
  392.  
  393. la = (((conz[le+1]-conz[le])/8) - ((conz[le+1] -i)/8));
  394. lb = (conz[le+1]-conz[le])/8;
  395. var label = LabelMgr.labelScreen("Objeto " + la + " de " + lb,cx,cy+140,false,17,"#990000");
  396. LabelMgr.setLabelShow(label, true);
  397.  
  398. if(la == lb )
  399. {
  400. le = le + 1;
  401. }
  402. }
  403. }
  404. le=0;
  405. core.selectObjectByName(cone[le],true);
  406. Menu();
  407. }
  408.  
  409. function Stop()
  410. {
  411. core.setRealTime(); // restaurar hora
  412. core.setTimeRate(1); // restaurar velocidad del tiempo
  413. core.clear("natural");
  414. LandscapeMgr.setFlagCardinalsPoints(true); // restaurar puntos cardinales
  415. core.setMountMode(mnt); // restaurar montura utilizada
  416. ConstellationMgr.setFlagLines(lin); //restaurar lineas constelaciones
  417. StelMovementMgr.zoomTo(60); // restaurar zoom
  418. StarMgr.setFlagStars(true);
  419. StarMgr.setFlagLabels(true);
  420. var label = LabelMgr.labelScreen("SCRIPT FINALIZADO",400,350,false,20,"#990000");
  421. LabelMgr.setLabelShow(label, true);
  422. core.goHome();
  423. core.wait(3);
  424. core.exit();
  425. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement