Advertisement
Guest User

Untitled

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