Advertisement
Guest User

guiacomellas.ssc

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