-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy path108.bas
More file actions
71 lines (70 loc) · 1.95 KB
/
Copy path108.bas
File metadata and controls
71 lines (70 loc) · 1.95 KB
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
'10 REM RAINBOW SIMULATION
11 REM
12 REM Modified by Dave La Rosa for use with Small Basic on an EBM
13 REM 8000 points takes 1/2 hour on 23MHz EBM
14 REM
15 REM Genesis 9:13 I do set my bow in the cloud, and it shall be
16 REM a token as a covenant between me and the earth.
20 REM
21 cls
22 npstop=299999 : if OS="EBM" then npstop=7998
23 mode$="Landscape" : mode$=""
24 st$=time$
25 R0=180/PI
26 RANDOMIZE(23)
30 REM RANDOM IMPACT PARAMETER
35 X=-1+2*RND
40 Y=-1+2*RND
45 B=SQR(X*X+Y*Y)
50 IF B>=1 THEN goto 30
55 REM COLOR & INDEX OF REFR.
60 C=1+INT(08-7.5*RND)
65 N=1.125+.08*(C-1)
70 REM COMPUTE ANGLES
75 I=ATN(B/SQR(1-B*B))
80 R=ATN(B/SQR(N*N-B*B))
85 T1=(4*R-2*I)*R0
90 T2=(6*R-2*I)*R0-180
95 REM INTENSITY FACTORS
100 RS=(SIN(I-R)/SIN(I+R))^2
105 RP=(TAN(I-R)/TAN(I+R))^2
110 RB=(1-RP)*(1-RP)
115 RC=(1-RS)*(1-RS)
120 I1=(RS*RC+RP*RB)/2
125 I2=(RS*RS*RC+RP*RP*RB)/2
130 IF I1<.04*RND THEN goto 140
135 TH=T1: GOSUB 180
140 IF I2<.02*RND THEN goto 150
145 TH=T2: GOSUB 180
146 if NP > npstop then goto 300
150 GOTO 30
155 REM COLORS & SCREEN
160 rem Was SCREEN 9 CLS KEY OFF NP=0
161 CLS: NP=0
165 rem PALETTE 1,4 PALETTE 2,2
170 rem PALETTE 3,9
175 RETURN
180 REM PLOT ON SCREEN
185 TH=ABS(TH)
190 IF TH>60 THEN RETURN
191 x0=xmax/2: y0=ymax/2
195 XP=x0+x0*(TH/60)*(X/B)
200 YP=y0-y0*(TH/60)*ABS(Y/B)
201 C=8-C
202 if (C=0) then RETURN
203 if mode$!="Landscape" then goto 206
204 XP=y0+y0*(TH/60)*ABS(Y/B)
205 YP=x0+x0*(TH/60)*(X/B)
206 PSET XP,YP,C: NP=NP+1
210 LOCATE 1,1: PRINT NP;" C=";C;" " : RETURN
215 REM Removed Apple II comments lines 220-275
280 REM **************************************
285 REM APPEARED IN ASTRONOMICAL COMPUTING
290 REM SKY & TELESCOPE, FEBRUARY 1991 ISSUE
291 REM http://skyandtelescope.com/resources/software/
300 REM **************************************
310 at 1,ymax*.75
320 if mode$!="Landscape" then goto 340
330 at 1,y0
340 Print "Time Start: ";st$;" End: "; time$
350 PRINT ""'