-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathB03_Stervlek.bc3
107 lines (106 loc) · 3.03 KB
/
B03_Stervlek.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
1000 A=500:GOTO20:REM stervlek
1010 P1=3.141592653589:REM pi
1020 NP=2:REM aantal magnetische polen
1030 DIMSK(NP):REM sterktes polen
1040 DIMX0(NP):REM x-coordinaten polen
1050 DIMY0(NP):REM y-coordinaten polen
1060 DIMZ0(NP):REM z-coordinaten polen
1070 PS=.75:REM namaakpixels basicode
1080 AM=2.1:REM asmaat
1090 R=PS/AM:REM projectiegetal
1100 GOSUB100:REM scherm schoon
1110 PRINT"Dit programma tekent de magnetische"
1120 PRINT"veldlijnen boven een stervlek of"
1130 PRINT"of zonnevlek."
1140 PRINT
1150 PRINT"We kunnen de kijkrichting kiezen."
1160 PRINT
1170 FORIP=1 TONP:REM lees polen
1180 READSK(IP),X0(IP),Y0(IP),Z0(IP)
1190 NEXTIP
1200 PRINT"Kijkhoek vanuit toppunt (0-90)";
1210 INPUTF
1220 SF=SIN(F*P1/180):REM sinus
1230 CF=COS(F*P1/180):REM cosinus
1240 PRINT"Kijkhoek langs horizon (0-360)";
1250 INPUTT
1260 SU=SIN(T*P1/180):REM sinus
1270 CU=COS(T*P1/180):REM cosinus
1280 CN=0:REM voorgrondkleur
1290 GOSUB600:REM grafisch scherm
1300 Z1=-.75:REM beginhoogte
1310 GS=10:REM stap in graden
1320 RH=.15:REM straal beginpunten
1330 SL=.05:REM stap langs veldlijn
1340 FORHK=0 TO359 STEPGS
1350 Z=Z1:REM beginpunt
1360 X=RH*COS(HK*P1/180)
1370 Y=RH*SIN(HK*P1/180)
1380 B=0:REM naar beginpunt
1390 GOSUB1670:REM tekenen
1400 IF(HO<.05)OR(HO>+.95) THEN1610:REM te ver
1410 IF(VE<.05)OR(VE>+.95) THEN1610:REM te ver
1420 B=1:REM aansluiten
1430 VX=0:REM x-veld
1440 VY=0:REM y-veld
1450 VZ=0:REM z-veld
1460 FORIP=1 TONP:REM polen
1470 NR=(X-X0(IP))^2+(Y-Y0(IP))^2+(Z-Z0(IP))^2
1480 NR=NR^1.5:REM noemer veldberekening
1490 VX=VX+SK(IP)*(X-X0(IP))/NR
1500 VY=VY+SK(IP)*(Y-Y0(IP))/NR
1510 VZ=VZ+SK(IP)*(Z-Z0(IP))/NR
1520 NEXTIP:REM volgende pool
1530 VT=SQR(VX*VX+VY*VY+VZ*VZ):REM veldsterkte
1540 VX=VX/VT*SL:REM x-stapje
1550 VY=VY/VT*SL:REM y-stapje
1560 VZ=VZ/VT*SL:REM z-stapje
1570 X=X+VX:REM op stap
1580 Y=Y+VY
1590 Z=Z+VZ
1600 IFZ>-.8 THEN1390:REM teken resultaat
1610 NEXTHK:REM volgende beginpunt
1620 GOSUB210:REM wacht op toets
1630 GOTO950:REM stop
1640 REM
1650 REM subroutine projectie
1660 REM
1670 XP=(-X*SU+Y*CU)*R
1680 YP=(-X*CU*CF-Y*SU*CF+Z*SF)*R
1690 HO=.5+XP
1700 VE=.5-YP*4/3
1710 IFB=0 THEN GOSUB620:REM punt
1720 IFB=1 THEN GOSUB630:REM lijntje
1730 RETURN
24900 REM sterkte,x,y,z
25000 DATA+1,0,0,-1.1
25010 DATA-1,0,0,-1.2
30000 REM
30010 REM Literatuur:
30020 REM
30030 REM over de tekenwijze:
30040 REM Aarde en Kosmos 7/1985,
30050 REM bladzijde 494
30060 REM
30070 REM over magneetvelden:
30080 REM Aarde en Kosmos 7/1985,
30090 REM bladzijde 524-529
30100 REM
30110 REM zie ook:
30120 REM A&K Informatica 7/87,
30130 REM 1 oktober - 15 november
32000 REM
32010 REM Basicode-3:
32020 REM
32030 REM Pim van Tend
32040 REM Veldheimwg 8
32050 REM 6871 CD RENKUM
32060 REM 08373 - 15358
32070 REM
32080 REM copyright (c) 1987
32090 REM Stichting Mens en
32100 REM Wetenschap, Postbus 108,
32110 REM 1270 AC HUIZEN NH
32120 REM 02152 - 58388
32130 REM
32140 REM TROS-RADIO dd 871111