
'<HTML>
'<TITLE> SPACE SHUTTLE WORLD MAP MICRO DATA SATELLITES  A A HASSEY </TITLE>
'<HEAD> SPACE SHUTTLE WORLD MAP MICRO DATA SATELLITES  A A HASSEY </HEAD>
'<BODY>
'<B>
'<PRE>
'<A HREF="mailto:aahasseye@netscape.net">Email Alejandro A. Hassey </A>
'<A HREF="http://www.geocities.com/aahasseye">Web Page         </A>
'<A HREF="mailto:aahasseye@LatinMail.com">Email Alejandro A. Hassey </A>
'<A HREF="http://www.geocities.com/ipm2000us">Web Page         </A>

'Ing. Alejandro A. Hassey (C) 2000
'Galeana 201
'Ciudad Mendoza, Veracruz  CP 94740
escape$ = CHR$(27)
TT10 = 30
ESKALA = 200
mmxxmm = 1700
MAXX = mmxxmm
MAXXIMO = mmxxmm

pban = -1: dban = -1: zban = 1
cb = 15: c7 = 7
'ki = 90: ci = -20
ki = -100: ci = 19
ki = 0: ci = 0
PI = 3.1415926#
PIS = PI / 180
CLS
maxmex = 750

GOSUB VariablesCHUT
GOSUB TimensionaCHUT
DIM X1(MAXXIMO), Y1(MAXXIMO), Z1(MAXXIMO): REM a$(MAXXIMO)
DIM X2(MAXXIMO), Y2(MAXXIMO), Z2(MAXXIMO)

DIM XX1(MAXXIMO), yY1(MAXXIMO), zz1(MAXXIMO)
DIM xX2(MAXXIMO), yY2(MAXXIMO), zz2(MAXXIMO)

DIM XX3(MAXXIMO), YY3(MAXXIMO), ZZ3(MAXXIMO)
DIM XX4(MAXXIMO), YY4(MAXXIMO), ZZ4(MAXXIMO)


GOSUB LeeCHUT


SCREEN 12, 1
E = ESKALA
'kien = E * ki: cien = E * (ci)

'WINDOW ((-320 + kien) / E, (240 + cien) / E)-((320 + kien) / E, (-240 + cien) / E)
WINDOW ((-320) / E, (240) / E)-((320) / E, (-240) / E)
CLS
'********************* PAINT (0, 0), 7, 7
T10 = TT10
GOSUB giramundo
END
giramundox:
giramundo:
SCREEN 12, 1
E = ESKALA
'kien = E * ki: cien = E * (ci)

'WINDOW ((-320 + kien) / E, (240 + cien) / E)-((320 + kien) / E, (-240 + cien) / E)
WINDOW ((-320) / E, (240) / E)-((320) / E, (-240) / E)

GOSUB DIBUJA
GOSUB CHUTA
GOSUB DIBUJA

GOSUB CHUTA
GOTO giramundox


END
cuenta:
FOR jjj = 1 TO 20000: NEXT jjj
RETURN



CHUTA:
GOSUB PantallaCHUT
GOSUB MainCHUT
RETURN
END
MainCHUT:
'LOCATE 12, 1: PRINT zban
IF zban < 0 THEN RETURN
REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
PARES = NLCHUT
REM >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


lx9000:
ag = 0: a = 0
GOSUB GUARDA

co = 0: cb = 15
PAINT (0, 0), co, co
P = 0: R = 0: Y = 0
kk$ = " ": GOTO et1CHUT127
et1CHUT:
kk$ = INKEY$:
et1CHUT127:
FOR ttt = 1 TO 64000:

'******   SOL
E = 1
kien = 0: cien = 0
WINDOW ((-320 - kien) / E, (240 - cien) / E)-((320 - kien) / E, (-240 - cien) / E)

'CIRCLE (0 - 5, 0), 20, 14
'PAINT (0 - 5, 0), 14, 14
'''''''''''''CIRCLE (0 - 5, 0), 22, 15
''''''''''''CIRCLE (0 - 5, 0), 21, 0
''''''''''''''CIRCLE (0 - 5, 0), 22, 0
''''''''''''''CIRCLE (0 - 5, 0), 21, 14
''''''''''''''CIRCLE (0 - 5, 0), 22, 15


kk$ = INKEY$
IF kk$ = "X" THEN CLEAR : END
IF kk$ = "x" THEN CLEAR : END
IF kk$ = escape$ THEN CLEAR : END

NEXT ttt
a = -T10 * PIS: : GOSUB ROLL: R = R + T10
SELECT CASE kk$
CASE " ": GOSUB DIBUJA
''''''''''''CASE "": GOTO et1CHUT
CASE "Z", "z":
zflag = zflag + 1:
zban = (-1) ^ zflag:
LOCATE 26, 1: PRINT zban

CASE "^", "6":
: GOSUB DIBUJA: GOSUB borra: RETURN

CASE "/", "?"
E = ESKALA
GOSUB borra
SCREEN 12, 1
'WINDOW (-320 / E, 240 / E)-(320 / E, -240 / E)
WINDOW ((-320) / E, (240) / E)-((320) / E, (-240) / E)

GOSUB DIBUJA

CASE "@"
E = ESKALA
GOSUB borra
SCREEN 12, 1
'WINDOW (-320 / E, 240 / E)-(320 / E, -240 / E)
WINDOW ((-320) / E, (240) / E)-((320) / E, (-240) / E)

GOSUB DIBUJA


CASE "E"
E = E * 1.1
GOSUB borra
SCREEN 12, 1
WINDOW (-320 / E, 240 / E)-(320 / E, -240 / E)
GOSUB DIBUJA
CASE "e"
E = E / 1.1
IF E <= 0 THEN E = ESKALA
GOSUB borra
SCREEN 12, 1
WINDOW (-320 / E, 240 / E)-(320 / E, -240 / E)
GOSUB DIBUJA

CASE "Q", "q":
'GOSUB LEVELIT
LOCATE 7, 1: INPUT "R"; R
LOCATE 8, 1: INPUT "Y"; Y
LOCATE 9, 1: INPUT "P"; P
LOCATE 10, 1: INPUT "T10"; T10

a = R * PIS: GOSUB ROLL: : GOSUB DIBUJA
a = -Y * PIS: GOSUB YAW: : : GOSUB DIBUJA
a = P * PIS: GOSUB PITCH: GOSUB DIBUJA
'GOSUB ISO
LOCATE 7, 1: PRINT "      "
LOCATE 8, 1: PRINT "      "
LOCATE 9, 1: PRINT "      "


CASE "`": CLEAR : END
CASE "X", "x": CLEAR : END
CASE escape$: CLEAR : END
CASE "S", "s":      a = -T10 * PIS * 0: : GOSUB ROLL: R = R + 0
CASE " ":      a = -T10 * PIS * 0: : GOSUB ROLL: R = R + 0

CASE CHR$(0) + "M":     a = -T10 * PIS: : GOSUB ROLL: R = R + T10
CASE CHR$(0) + "K":     a = T10 * PIS: : GOSUB ROLL: R = R - T10
CASE CHR$(0) + "H":     a = T10 * PIS: : GOSUB PITCH: P = P - T10
CASE CHR$(0) + "P":     a = -T10 * PIS: : GOSUB PITCH: P = P + T10
CASE "<", ",":          a = T10 * PIS: : GOSUB YAW: Y = Y - T10
CASE ">", ".":          a = -T10 * PIS: : GOSUB YAW: Y = Y + T10
END SELECT

'**************
' LOCATE 3, 70: PRINT USING "R= #####"; R
' LOCATE 4, 70: PRINT USING "Y= #####"; Y
' LOCATE 5, 70: PRINT USING "P= #####"; P

GOSUB DIBUJA




GOTO et1CHUT
RETURN

EJES:
LINE (-30, 0)-(30, 0), 3
LINE (0, 20)-(0, -20), 3
RETURN


GUARDA:
FOR I = 1 TO PARES
XX3(I) = X1(I)
YY3(I) = Y1(I)
XX4(I) = X2(I)
YY4(I) = Y2(I)
NEXT I
RETURN













YAW:

GOSUB borra
cosa = COS(a): sina = SIN(a)

FOR I = 1 TO PARES


X1(I) = XX1(I) * cosa - yY1(I) * sina
Y1(I) = XX1(I) * sina + yY1(I) * cosa
X2(I) = xX2(I) * cosa - yY2(I) * sina
Y2(I) = xX2(I) * sina + yY2(I) * cosa
Z1(I) = zz1(I)
Z2(I) = zz2(I)
XX1(I) = X1(I): yY1(I) = Y1(I): zz1(I) = Z1(I)
xX2(I) = X2(I): yY2(I) = Y2(I): zz2(I) = Z2(I)



NEXT I

RETURN

ROLL:
GOSUB borra
cosa = COS(a): sina = SIN(a)
FOR I = 1 TO PARES

X1(I) = XX1(I) * cosa - zz1(I) * sina
Z1(I) = XX1(I) * sina + zz1(I) * cosa
X2(I) = xX2(I) * cosa - zz2(I) * sina
Z2(I) = xX2(I) * sina + zz2(I) * cosa
Y1(I) = yY1(I)
Y2(I) = yY2(I)
XX1(I) = X1(I): yY1(I) = Y1(I): zz1(I) = Z1(I)
xX2(I) = X2(I): yY2(I) = Y2(I): zz2(I) = Z2(I)



NEXT I


RETURN
PITCH:
GOSUB borra
cosa = COS(a): sina = SIN(a)

FOR I = 1 TO PARES
 



Z1(I) = zz1(I) * cosa - yY1(I) * sina
Y1(I) = zz1(I) * sina + yY1(I) * cosa
Z2(I) = zz2(I) * cosa - yY2(I) * sina
Y2(I) = zz2(I) * sina + yY2(I) * cosa
X1(I) = XX1(I)
X2(I) = xX2(I)
XX1(I) = X1(I): yY1(I) = Y1(I): zz1(I) = Z1(I)
xX2(I) = X2(I): yY2(I) = Y2(I): zz2(I) = Z2(I)

 


NEXT I



RETURN

LEVELIT:
 LOCATE 6, 78: PRINT USING "\ \"; "L"
 LOCATE 6, 78: PRINT USING "\ \"; " "

GOSUB borra
FOR I = 1 TO PARES
XX1(I) = X1(I):
yY1(I) = Y1(I):
zz1(I) = Z1(I):
xX2(I) = X2(I):
yY2(I) = Y2(I):
zz2(I) = Z2(I):
XX3(I) = X1(I):
YY3(I) = Y1(I):
ZZ3(I) = Z1(I):
XX4(I) = X2(I):
YY4(I) = Y2(I):
ZZ4(I) = Z2(I):


NEXT I
CLS
PAINT (0, 0), 7, 7
'PAINT (0, 0), co, co
GOSUB DIBUJA

RETURN

ISO:
RETURN


'pasoapaso:
'L5000:
' kkk$ = INKEY$: IF kkk$ = "" THEN GOTO L5000
'RETURN

LeeCHUT:
'N4$ = "c:\ww\wxshut.TXT"
N4$ = "c:\ww\WXYZ105.dat"
N4$ = "c:\wxyz\W0004.dat"
N4$ = "c:\A\YAWN05.TXT"

OPEN N4$ FOR INPUT AS #4
DO
NLCHUT = NLCHUT + 1
'INPUT #4, I, XA(nlCHUT), YA(nlCHUT), ZA(nlCHUT), XB(nlCHUT), YB(nlCHUT), ZB(nlCHUT)
INPUT #4, XX1(NLCHUT), yY1(NLCHUT), zz1(NLCHUT), xX2(NLCHUT), yY2(NLCHUT), zz2(NLCHUT)

LOOP UNTIL (EOF(4))
CLOSE 4
RETURN

VariablesCHUT:
co = 15: cb = 0: CF = 3: KKBB = 0

F = SQR(2) / 2
PI = 3.1415926#: PIS = PI / 180: a = 45 * PIS

E = ESKALA
: PIEZA = 163: PIEZA = 359: PIEZA = 330 - 1
principio = 1: fin = NLCHUT
principio = 1: fin = NLCHUT

'MAXX = 400 + 1300
'MAXXIMO = 350 + 1350
center(1) = 1: body(1) = 9: Extank(1) = 187: Lbooster(1) = 259
center(2) = 8: body(2) = 186: Extank(2) = 258: Lbooster(2) = 294
Rbooster(1) = 295
Rbooster(2) = 330: parabrisas(1) = 36
toberas(1) = 151: parabrisas(2) = 48
toberas(2) = 186
bods(1) = 49
bods(2) = 150
RETURN

PantallaCHUT:
SCREEN 12, 1
E = 50

kien = 200: cien = 0
WINDOW ((-320 - kien) / E, (240 - cien) / E)-((320 - kien) / E, (-240 - cien) / E)
'WINDOW (-320 / E, 240 / E)-(320 / E, -240 / E)

RETURN

TimensionaCHUT:
RETURN
DIBUJA:

COLOR 7
LOCATE 27, 60:
PRINT "A. A. Hassey (C) 2000"
LOCATE 28, 59
PRINT "aahasseye@netscape.net"
'LOCATE 6, 1
'PRINT "http://www.geocities.com/ipm2000us"
'COLOR 3
'LOCATE 4, 1:
'PRINT "I. P. M."
'COLOR 7
'LOCATE 5, 1:
'PRINT "NOWADAYS TECHNOLOGY"
COLOR 15


'******   SOL

E = 1
kien = 0: cien = 0
WINDOW ((-320 - kien) / E, (240 - cien) / E)-((320 - kien) / E, (-240 - cien) / E)

CIRCLE (0 - 5, 0), 20, 14
PAINT (0 - 5, 0), 14, 14
'''''''''''''CIRCLE (0 - 5, 0), 21, 15

'FOR kol = 1 TO 15
'CIRCLE (25 * kol - 200, -210), 5, 15
'PAINT (25 * kol - 200, -210), kol, 15
'NEXT kol


'******   Jupiter
KK45 = 5
'*********** Venus
E = 50 / 2
 w = 1 * PIS
 kien = 200: cien = 0
kien = 600 * COS(.2 * w * ntiempo) / 2
cien = 400 * SIN(.2 * w * ntiempo) / 2
E = 50 / 5 + 45 * COS(.2 * w * ntiempo - PI - PI / 2) / 5
WINDOW ((-320 - kien) / E, (240 - cien) / E)-((320 - kien) / E, (-240 - cien) / E)
CIRCLE (0, 0), 2, 15
 PAINT (0, 0), 15, 15
CIRCLE (0, 0), 2, 14
CIRCLE (0, 0), 1.7, 14
CIRCLE (0, 0), 1.5, 14
CIRCLE (0, 0), 1.2, 14
CIRCLE (0, 0), .8, 14
CIRCLE (0, 0), .4, 14
CIRCLE (0, 0), .1, 14
'CIRCLE (0, 0), 2, 4, , , 1 / 150
CIRCLE (0, 0), 2, 4, , , 1 / 10
CIRCLE (-.7 + 2 * SIN(2 * w * ntiempo) / 2, -.9), .25, 4, , , 1 / 1.5
'PAINT (-.7, -.9), 4, 4
PAINT (-.7 + 2 * SIN(2 * w * ntiempo) / 2, -.9), 4, 4
'******   Saturno
E = 50 / 2
 w = 1 * PIS
 kien = 200: cien = 0
kien = 650 * COS(.1 * w * ntiempo + PI / 2) / 2
cien = 450 * SIN(.1 * w * ntiempo + PI / 2) / 2
E = 50 / 5 + KK45 * COS(.1 * w * ntiempo - PI - PI / 2 + PI / 2) / 5
WINDOW ((-320 - kien) / E, (240 - cien) / E)-((320 - kien) / E, (-240 - cien) / E)
CIRCLE (0, 0), 1.2, 15
 PAINT (0, 0), 14, 15
CIRCLE (0, 0), 2.6, 14, , , 1 / 5
CIRCLE (0, 0), 2.7, 15, , , 1 / 5
CIRCLE (0, 0), 2.8, 14, , , 1 / 5
CIRCLE (0, 0), 3, 14, , , 1 / 5
CIRCLE (0, 0), 3.2, 14, , , 1 / 5

'******   Urano
E = 50 / 2
 w = 1 * PIS
 kien = 200: cien = 0
kien = 700 * COS(.1 * w * ntiempo + PI / 4) / 2
cien = 500 * SIN(.1 * w * ntiempo + PI / 4) / 2
E = 50 / 5 + KK45 * COS(.1 * w * ntiempo - PI - PI / 2 + PI / 4) / 5
WINDOW ((-320 - kien) / E, (240 - cien) / E)-((320 - kien) / E, (-240 - cien) / E)
CIRCLE (0, 0), .7, 15
 PAINT (0, 0), 3, 15
CIRCLE (0, 0), 1.5, 3, , , 5
'******   Neptuno
E = 50 / 2
 w = 1 * PIS
 kien = 200: cien = 0
kien = 750 * COS(.08 * w * ntiempo) / 2
cien = 550 * SIN(.08 * w * ntiempo) / 2
E = 50 / 5 + KK45 * COS(.08 * w * ntiempo - PI - PI / 2) / 5
WINDOW ((-320 - kien) / E, (240 - cien) / E)-((320 - kien) / E, (-240 - cien) / E)
CIRCLE (0, 0), .6, 15
 PAINT (0, 0), 3, 15
'******   Pluton
E = 50 / 2
 w = 1 * PIS
 kien = 200: cien = 0
kien = 750 * COS(.07 * w * ntiempo) / 2
cien = 550 * SIN(.07 * w * ntiempo) / 2
E = 50 / 15 + KK45 * COS(.07 * w * ntiempo - PI - PI / 2) / 15
WINDOW ((-320 - kien) / E, (240 - cien) / E)-((320 - kien) / E, (-240 - cien) / E)
CIRCLE (0, 0), .5, 15
 PAINT (0, 0), 4, 15

''******   SOL
''**************TIERRA LUNA
E = 50
 w = 1 * PIS
 wluna = 4 * PIS

kien = 200: cien = 0
kien = 220 * COS(w * ntiempo)
cien = 120 * SIN(w * ntiempo)
E = 50 + 45 * COS(w * ntiempo - PI - PI / 2)

cxluna = 5 * COS(wluna * ntiempo)
cyluna = 2 * SIN(wluna * ntiempo)


ntiempo = ntiempo + 15

WINDOW ((-320 - kien) / E, (240 - cien) / E)-((320 - kien) / E, (-240 - cien) / E)

CIRCLE (0, 0), 1, 15
'CIRCLE (0, 0), 1 - .01, 15
'CIRCLE (0, 0), 1 - .02, 15
'CIRCLE (0, 0), 1 + .01, 15
CIRCLE (0, 0), 1 + .02, 15
'CIRCLE (0, 0), 1 - .02, 15
PAINT (0, 0), 9, 15
CIRCLE (cxluna, cyluna), .2, 15
PAINT (cxluna, cyluna), 7, 15
DD = 20
'FOR I = principio TO fin
FOR I = 1 + 36 TO NLCHUT - 8
IF zz1(I) <= 0 THEN GOTO 333
IF zz2(I) <= 0 THEN GOTO 333

LINE (X1(I), Y1(I))-(X2(I), Y2(I)), cb
333 :

NEXT I

FOR I = NLCHUT - 8 TO NLCHUT - 1
IF zz1(I) <= 0 THEN GOTO 3333
IF zz2(I) <= 0 THEN GOTO 3333
'CIRCLE (X1(I), Y1(I)), 1 / 1000, 0

'CIRCLE (X1(I), Y1(I)), 1 / 10, 15
PAINT (X1(I), Y1(I)), 2, 15
3333 :
NEXT I

FOR I = NLCHUT TO NLCHUT
IF zz1(I) <= 0 THEN GOTO 33333
IF zz2(I) <= 0 THEN GOTO 33333
'CIRCLE (1.15 * X1(I), 1.15 * Y1(I)), 1 / 10, 15
PAINT (X1(I), Y1(I)), 15, 15
33333 :
NEXT I

FOR I = 1 TO 36
IF zz1(I) <= 0 THEN GOTO 3337
IF zz2(I) <= 0 THEN GOTO 3337

LINE (X1(I), Y1(I))-(X2(I), Y2(I)), cb
3337 :

NEXT I
'*********** Venus
E = 50
 w = 1 * PIS

kien = 200: cien = 0
kien = 220 * COS(2 * w * ntiempo) / 2
cien = 120 * SIN(2 * w * ntiempo) / 2
E = 50 / 1.5 + 45 * COS(2 * w * ntiempo - PI - PI / 2) / 2




WINDOW ((-320 - kien) / E, (240 - cien) / E)-((320 - kien) / E, (-240 - cien) / E)

 CIRCLE (0, 0), .2, 15
 PAINT (0, 0), 15, 15

'*********** Mercurio
E = 50
 w = 1 * PIS
' wluna = 4 * pis

kien = 200: cien = 0
kien = 220 * COS(4 * w * ntiempo) / 4
cien = 120 * SIN(4 * w * ntiempo) / 4
E = 50 / 4 + 45 * COS(4 * w * ntiempo - PI - PI / 2) / 4

'cxluna = 5 * COS(wluna * ntiempo)
'cyluna = 2 * SIN(wluna * ntiempo)


'ntiempo = ntiempo + 15

WINDOW ((-320 - kien) / E, (240 - cien) / E)-((320 - kien) / E, (-240 - cien) / E)

'CIRCLE (0, 0), 1, 15
'CIRCLE (0, 0), 1 - .01, 15
'CIRCLE (0, 0), 1 - .02, 15
'CIRCLE (0, 0), 1 + .01, 15
'CIRCLE (0, 0), 1 + .02, 15
'CIRCLE (0, 0), 1 - .02, 15
'PAINT (0, 0), 9, 15
'CIRCLE (cxluna, cyluna), .2, 15
'PAINT (cxluna, cyluna), 15, 15

 CIRCLE (0, 0), .2, 15
 PAINT (0, 0), 14, 15

'*********** Marte
E = 50
 w = 1 * PIS
' wluna = 4 * pis

kien = 200: cien = 0
kien = 300 * COS(.5 * w * ntiempo + PI)
cien = 150 * SIN(.5 * w * ntiempo + PI)
E = 50 + 45 * COS(.5 * w * ntiempo - PI - PI / 2 + PI)

'cxluna = 5 * COS(wluna * ntiempo)
'cyluna = 2 * SIN(wluna * ntiempo)


'ntiempo = ntiempo + 15

WINDOW ((-320 - kien) / E, (240 - cien) / (.1 * E))-((320 - kien) / E, (-240 - cien) / (.1 * E))

'CIRCLE (0, 0), 1, 15
'CIRCLE (0, 0), 1 - .01, 15
'CIRCLE (0, 0), 1 - .02, 15
'CIRCLE (0, 0), 1 + .01, 15
'CIRCLE (0, 0), 1 + .02, 15
'CIRCLE (0, 0), 1 - .02, 15
'PAINT (0, 0), 9, 15
'CIRCLE (cxluna, cyluna), .2, 15
'PAINT (cxluna, cyluna), 15, 15

 CIRCLE (0, 0), .2, 15
 PAINT (0, 0), 4, 15



RETURN


borra:
CLS
RETURN


'<A HREF="mailto:aahasseye@netscape.net">Email Alejandro A. Hassey </A>
'<A HREF="http://www.geocities.com/aahasseye">Web Page         </A>
'<A HREF="mailto:aahasseye@LatinMail.com">Email Alejandro A. Hassey </A>
'<A HREF="http://www.geocities.com/ipm2000us">Web Page         </A>

'Ing. Alejandro A. Hassey (C) 2000
'Galeana 201
'Ciudad Mendoza, Veracruz  CP 94740
'</PRE>
'</B>
'</BODY>
'</HTML>

