-
Notifications
You must be signed in to change notification settings - Fork 11
/
B03_Maanbaan_programma.bc3
319 lines (318 loc) · 8.72 KB
/
B03_Maanbaan_programma.bc3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
1000 A=500:GOTO20:REM MAANBAAN
1010 DIMFA(2),FM(2),HP(1),BP(1),AV(1)
1020 DIMAH(1),AA(1),BV(1),BH(1),AM(1)
1030 T=0
1040 PRINT"Dit programma tekent de banen"
1050 PRINT"van een planeet, zijn maan"
1060 PRINT"en van een projectiel in de ruimte"
1070 PRINT
1500 CG=6.67*10^-11:REM GRAVITATIECONSTANTE
1510 PY=3.141593
1520 REM
1530 SA=5850:REM SOORTELIJKE MASSA PLANEET
1540 SM=3200:REM SOORTELIJKE MASSA MAAN
1550 RA=6*10^6:REM STRAAL PLANEET
1560 RM=1.7*10^6:REM STRAAL MAAN
1570 MA=4/3*PY*RA^3*SA:REM MASSA PLANEET
1580 MM=4/3*PY*RM^3*SM:REM MASSA MAAN
1590 MT=30*24*3600:REM OMLOOPTIJD MAAN
1600 MP=10^4:REM MASSA PROJECTIEL
1610 HS=2*PY/MT:REM BEREK.HOEK-
1620 REM -SNELHEID MAAN UIT OMLOOPTIJD
1630 REM
1640 DT=1000:REM TIJDSTAP
1650 AL=0*2*PY/360:REM STARTHOEK MAANPOSITIE
1660 DZ=5*2*PY/360:ZC=0:REM MAANPLOTHOEK
1670 REM
1680 ZP=.05:ZF=ZP/RA:REM ZOOMFACTOR
1690 ZA=RA*ZF:ZM=RM*ZF:REM ZOOMSTRALEN
1700 REM VAN PLANEET EN MAAN
1710 REM
1720 PP=.005:REM PLANEETPLOTGROOTTE
1730 SF=PP/RA:REM SCHAALFACTOR
1740 PA=RA*SF:REM PLANEETPLOTSTRAAL
1750 PM=RM*SF:REM MAANPLOTSTRAAL
1760 X0=.5:Y0=.35:REM PLOTCOORDINATEN
1770 REM VAN VIRTUEEL DRAAIPUNT
1780 REM
1790 REM
1800 GOSUB6110:REM BEPALEN AFSTANDEN IN STELSEL
1810 PRINT"Afstand van virtueel draaipunt tot:"
1820 PRINT"-planeetkern ";DA/1000;" km"
1830 PRINT"-maankern ";DM/1000;" km"
1840 PRINT"Afstand maan-planeet= ";D/1000;" km"
1850 PRINT"Cirkelbaan-snelheid maan ="
1860 PRINT" ";SQR(CG*MA/DM)/1000;" (km/s)"
1870 REM
1880 PRINT
1890 PRINT"(voor vluchten nabij planeet of maan:"
1900 PRINT"maak dt (statement 1640) klein!!!)"
1910 PRINT
1920 PRINT"lanceergegevens:"
1930 PRINT"vert. afstand boven planeetkern?"
1940 INPUT"(in km (bv.20000)) ";KV
1950 AV=KV*10^3
1960 PRINT"horz. afstand rechts van planeetkern?"
1970 INPUT"vlak (in km (bv.15000)) ";KH
1980 AH=KH*10^3
1990 PRINT"cirkelbaansnelheid hier is (km/s)";
2000 PRINTSQR(CG*MA/(SQR(AV*AV+AH*AH)))/1000
2010 PRINT"(hierbij alleen rekening gehouden"
2020 PRINT"met planeetgravitatie)"
2030 PRINT
2040 INPUT"lanceerhoek in graden (bv.0) ";EL
2050 BE=(90-EL)*2*PY/360
2060 INPUT"startsnelheid (km/s) (bv.5.225) ";V
2070 V=V*1000
2080 VV=V*COS(BE):REM VERT.COMP.SNELHEID
2090 VH=V*SIN(BE):REM HORZ.COMP.SNELHEID
2100 PRINT
2110 PRINT"wilt u niet (ret) of wel inzoomen op"
2120 PRINT"planeet (type p) of maan (m) (bv.m)"
2130 INPUTSR$:GOSUB330:PM$=SR$
2140 REM
2150 GOSUB100
2160 PRINT"tijdens de vlucht:"
2170 PRINT"toets d= geef vluchtdata"
2180 PRINT"toets p= plot actuele positie"
2190 PRINT"van planeet en maan"
2200 PRINT"toets b= beeindig de vlucht"
2210 PRINT
2220 PRINT"druk op een toets"
2230 GOSUB210
2240 REM
2250 REM
2500 GOSUB600
2510 HO=X0:VE=Y0:CN=0:GOSUB620
2520 REM
2530 IFPM$="P" THEN GOSUB8520:REM INZOOMEN
2540 IFPM$="M" THEN GOSUB8620:REM INZOOMEN
2550 GOSUB7220
2560 GOSUB7520
2570 GOSUB7630
2580 HO=X0+BP*SF:VE=Y0-4/3*HP*SF:REM PLOTPOS.
2590 CN=0:GOSUB620:REM
2600 IFPM$="P" THEN GOSUB9020
2610 IFPM$="M" THEN GOSUB9080
3000 REM
3010 HO=.0:VE=0:SR$="laatst bepaalde vluchtgegevens:"
3020 CN=0:GOSUB650
3030 HO=.0:VE=.04:SR$="vluchttijd(s)="
3040 CN=0:GOSUB650
3050 HO=.0:VE=.08:SR$="planeetafst.(km)="
3060 CN=0:GOSUB650
3070 HO=.0:VE=.12:SR$="maanafst.(km)="
3080 CN=0:GOSUB650
3090 HO=.0:VE=.16:SR$="snelheid(km/s)="
3100 CN=0:GOSUB650
3110 CN=0:GOSUB650
3120 XT$="":XA$="":XM$="":XV$=""
3130 GOSUB8720
3140 REM
3150 REM*******************************
4000 REM START REKENCYCLUS
4010 T=T+DT
4020 GOSUB200:IFIN<>68 THEN4510
4030 GOSUB8720
4500 REM CN=1:GOSUB 12600
4510 AL=AL+HS*DT
4520 GOSUB7220
4530 ZC=ZC-HS*DT
4540 IFZC>0 THEN4570
4550 ZC=DZ
4560 CN=0:GOSUB7320
4570 GOSUB200:IFIN<>80 THEN4590
4580 CN=0:GOSUB7320
4590 GOSUB7630:REM AFST.HEMELLICHAMEN
4600 IFAA>RA THEN4620
4610 GOTO9520:REM VLUCHTEINDE
4620 IFAM>RM THEN4640
4630 GOTO9590:REM VLUCHTEINDE
4640 GOSUB8020:REM VERPLAATSING PROJ.
4650 HP=HP+DJ:REM NIEUWE VERT. POSITIE
4660 HP(0)=HP+DJ/2
4670 BP=BP+DK:REM NIEUWE HORZ. POSITIE
4680 BP(0)=BP+DK/2
4690 HO=X0+BP*SF
4700 VE=Y0-4/3*HP*SF
4710 CN=0:GOSUB8320:GOSUB620:REM PLOT PROJ.
4720 IFPM$="P" THEN GOSUB9020
4730 IFPM$="M" THEN GOSUB9080
5000 REM
5500 GOSUB200:IFIN=66 THEN9630
5510 GOTO4010:REM NAAR NIEUWE REKENCYCLUS
5520 REM*******************************
5530 REM
5540 GOTO950
6000 REM
6010 REM SUBROUTINES
6020 REM
6100 REM SUBR.AFSTANDEN IN PLANEET-MAAN STELSEL
6110 T1=CG*MA
6120 N1=1+2*MM/MA+MM/MA*MM/MA
6130 F1=T1/(N1*HS*HS)
6140 DM=F1^(1/3)
6150 F2=T1/(DM*HS*HS)
6160 D=SQR(F2)
6170 DA=D-DM
6180 RETURN
7200 REM
7210 REM SUBR.VOOR PLANEET-EN MAAN POSITIE
7220 HA=DA*SIN(AL)
7230 BA=DA*COS(AL)
7240 HM=DM*SIN(AL)
7250 BM=DM*COS(AL)
7260 RETURN
7300 REM
7310 REM SUBR.VOOR MAAN EN PLANEET PLOT
7320 XA=X0-BA*SF
7330 YA=Y0-4/3*HA*SF
7340 XM=X0+BM*SF
7350 YM=Y0+4/3*HM*SF
7360 IF(XA+PA<0)OR(XA-PA>1) THEN7410
7370 IF(YA+PA<0)OR(YA-PA>1) THEN7410
7380 IFPA<.01 THEN7400
7390 XC=XA:YC=YA:R=PA:GOSUB8410
7400 HO=XA:VE=YA:GOSUB8320:GOSUB620
7410 IF(XM+PM<0)OR(XM-PM>1) THEN7460
7420 IF(YM+PM<0)OR(YM-PM>1) THEN7460
7430 IFPM<.01 THEN7450
7440 XC=XM:YC=YM:R=PM:GOSUB8410
7450 HO=XM:VE=YM:GOSUB8320:GOSUB620
7460 RETURN
7500 REM
7510 REM SUBROUTINE VIRTUEEL DRAAIPUNT-PROJECTIEL
7520 HP=AV+HA:HP(0)=HP
7530 BP=AH-BA:BP(0)=BP
7540 RETURN
7600 REM
7610 REM SUBR.AFSTAND PROJECTIEL-PLANEET
7620 REM EN PROJECTIEL-MAAN
7630 AC=SQR(HP*HP+BP*BP)
7640 DE=ATN(BP/(HP+10^-10))
7650 AV=HP-HA
7660 AV(0)=HP(0)-HA
7670 AH=BP+BA
7680 AH(0)=BP(0)+BA
7690 AA=SQR(AH*AH+AV*AV)
7700 AA(0)=SQR(AH(0)^2+AV(0)^2)
7710 BV=HM+HP
7720 BV(0)=HM+HP(0)
7730 BH=BM-BP
7740 BH(0)=BM-BP(0)
7750 AM=SQR(BH*BH+BV*BV)
7760 AM(0)=SQR(BH(0)^2+BV(0)^2)
7770 RETURN
8000 REM
8010 REM SUBR. POSITIEVERANDERING PROJECTIEL
8020 FA=-CG*MA*MP/AA(0)^2:REM PLANEETKRACHT
8030 FM=-CG*MM*MP/AM(0)^2:REM MAANKRACHT
8040 FA(1)=FA*AH/AA:REM PLANEETKR.HORZ.COMP.
8050 FA(2)=FA*AV/AA:REM IDEM VERT.
8060 FM(1)=FM*BH/AM:REM MAANKR.HORZ.
8070 FM(2)=FM*BV/AM:REM IDEM VERT.
8080 FV=FA(2)+FM(2):REM VERT.KRACHT
8090 FH=FA(1)-FM(1):REM HORZ.KRACHT
8100 DV=FV/MP*DT:REM SNELH.VERANDERING
8110 VV=VV+DV:REM NIEUWE SNELH.VERT
8120 DJ=VV*DT:REM VERT.VERPL.
8130 REM
8140 DV=FH/MP*DT:REM IDEM
8150 VH=VH+DV:REM HORZ.
8160 DK=VH*DT:REM HORZ.VERPL.
8170 REM
8180 V=SQR(VV*VV+VH*VH):REM NIEUWE SNELH.
8190 REM BE=ATN(VH/(VV+10^-10)):REM VLIEGHOEK
8200 RETURN
8300 REM
8310 REM PLOTBEPERKING SUBR.
8320 IFHO<0 THENCN=1:HO=0
8330 IFHO>=1 THENCN=1:HO=1-1/HG
8340 IFVE<0 THENCN=1:VE=0
8350 IFVE>=1 THENCN=1:VE=1-1/VG
8360 RETURN
8400 REM SUBR. CIRKEL TEKENEN
8410 HO=XC:VE=YC-4/3*R:CN=0:GOSUB8320:GOSUB620
8420 FORTH=0 TO2.1*PY STEP.2
8430 HO=XC+R*SIN(TH):VE=YC-4/3*R*COS(TH)
8440 CN=0:GOSUB8320:GOSUB630
8450 NEXTTH
8460 RETURN
8500 REM
8510 REM SUBR.PLANEET TEKENEN
8520 XC=.3:YC=.5:R=ZA:GOSUB8410
8530 RETURN
8600 REM
8610 REM SUBR. MAAN TEKEN
8620 XC=.3:YC=.5:R=ZM:GOSUB8410
8630 RETURN
8700 REM
8710 REM VLUCHTDATA PRINT SUBR.
8720 CN=1:HO=.5:VE=.04:SR$=XT$
8730 GOSUB650
8740 SR=T:GOSUB300:XT$=SR$
8750 CN=0:HO=.5:VE=.04:GOSUB650
8760 REM
8770 CN=1:HO=.5:VE=.08:SR$=XA$
8780 GOSUB650
8790 SR=(AA-RA)/1000:GOSUB300:XA$=SR$
8800 CN=0:HO=.5:VE=.08:GOSUB650
8810 REM
8820 CN=1:HO=.5:VE=.12:SR$=XM$
8830 GOSUB650
8840 SR=(AM-RM)/1000:GOSUB300:XM$=SR$
8850 CN=0:HO=.5:VE=.12:GOSUB650
8860 REM
8870 CN=1:HO=.5:VE=.16:SR$=XV$
8880 GOSUB650
8890 SR=V/1000:GOSUB300:XV$=SR$
8900 CN=0:HO=.5:VE=.16:GOSUB650
8910 RETURN
9000 REM
9010 REM CLOSE-UP PLANEET SUBROUTINE
9020 HO=.3+AH*ZF
9030 VE=.5-4/3*AV*ZF
9040 CN=0:GOSUB8320:GOSUB620
9050 RETURN
9060 REM
9070 REM CLOSE-UP MAAN SUBROUTINE
9080 HO=.3-BH*ZF
9090 VE=.5-4/3*BV*ZF
9100 CN=0:GOSUB8320:GOSUB620
9110 RETURN
9500 REM
9510 REM
9520 GOSUB8720
9530 CN=0:HO=.1:VE=.8:SR$="planeet geraakt"
9540 GOSUB650
9550 GOSUB200:IFIN<>0 THEN9550:REM wacht geen toets
9560 GOSUB200:IFIN=0 THEN9560:REM wacht toets af
9570 GOTO950
9580 REM
9590 GOSUB8720
9600 CN=0:HO=.1:VE=.8:SR$="maan geraakt"
9610 GOTO9540
9620 REM
9630 GOSUB8720
9640 CN=0:HO=.1:VE=.8:SR$="berekening gestopt"
9650 GOTO9540
9660 REM
30000 REM----------------------------
30010 REM INFO:
30020 REM ASTRONOMISCHE GEGEVENS OP 1520 TOT 1630
30030 REM EN PLOTGEGEVENS OP 1700-1760
30040 REM ZIJN VRIJ TE KIEZEN.
30050 REM
30060 REM MAAK TIJDSTAP DT (1640) VOLDOENDE KLEIN!!!
30070 REM----------------------------
30080 REM een uitgebreide toelichting bij dit
30090 REM programma staat in
30100 REM 'MENS EN WETENSCHAP' 16-e jaargang
30110 REM nummer 4
32000 REM----------------------------
32100 REM OGE KRUIJT
32110 REM PR. W. DE ZWIJGERLAAN 2
32120 REM 3991 BR HOUTEN
32200 REM----------------------------
32210 REM
32220 REM TROS-RADIO dd 890913