View difference between Paste ID: frNgzwU5 and CNHJN4yH
SHOW: | | - or go back to the newest paste.
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>
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("comellas2.inc");
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 conn = new Array("199","209","225","241","252","266",
62+
63-
//"280","302","315","320","338","348","364","382","400",
63+
64-
//"419","450","464","469","483","497","506","520","529",
64+
65-
//"544","555","570","588","623","637","652");
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-
	var opt = LabelMgr.labelScreen(cons[le] + " (" + (conz[le+1]-conz[le])/8+ " objetos)" + " Pagina: " + objetos[conz[le]],160,50,false,18,"#009900");
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-
	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");
116+
117
118
119
// bucle del menú
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");
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-
var opt = LabelMgr.labelScreen(cons[le] + " (" + (conz[le+1]-conz[le])/8+ " objetos)" + " Pagina: " + objetos[conz[le]],160,50,false,18,"#009900");
154+
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-
		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");
159+
160
		}
161
			
162
			core.setDate("-1 days");
163
			//core.setRealTime();
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");
164+
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-
var label = LabelMgr.labelScreen("Siguiente: " + Info2_1 + " " + Info2_2 + " - " + Info2_3 + " " + Info2_4 + " - " + Co2 + " - Pagina " + Pag2,cx,cy + 56,false,18,"#FF0000");
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: " + Info2_1 + " " + Info2_2 + " - " + Info2_3 + " " + Info2_4 + " - " + Co2 + " -Pagina " + Pag2,cx,cy + 56,false,18,"#FF0000");
365+
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
}