-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathspirals1.bas
59 lines (59 loc) · 1.03 KB
/
spirals1.bas
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
10 ' Spirals
20 ' Gilbert Francois Duivesteijn
30 '
40 EPS=1E-05
50 PI=ATN(1)*4
60 PD=2*PI-EPS
70 PH=PI/2
80 PY=2/96*PI*2
85 LW=20
90 NC=3
91 DIM CP(NC)
92 CP(0)=1
93 CP(1)=1
94 CP(2)=1
95 CP(3)=1
100 COLOR 1,15,15:CLS
110 SCREEN 2
115 GOSUB 1000
120 GOSUB 1500
130 GOTO 130
140 END
1000 '
1010 ' draw radial
1020 '
1030 FOR R=0 TO 96 STEP 1
1040 C=CP(INT(R/96*NC))
1050 FOR J=0 TO LW-1 STEP 2
1060 AS=COS(R*PY)+J*PD/LW
1070 IF AS>=PD THEN AS=AS-PD
1080 IF AS<=0 THEN AS=AS+PD
1090 AE=AS+PD/LW
1100 IF AE>=PD THEN AE=AE-PD
1110 IF AE<=0 THEN AE=AE+PD
1120 CIRCLE(128,96),R,C,AS,AE
1130 NEXT J
1140 NEXT R
1150 RETURN
1500 '
1510 ' draw axial
1520 '
1530 FOR J=0 TO LW-1 STEP 1
1540 C=1
1550 FOR R=0 TO 96
1560 AS=COS(R*PY)+J*PD/LW
1570 AE=COS((R+1)*PY)+J*PD/LW
1580 X0=128+R*COS(AS)
1590 Y0=96-R*SIN(AS)
1600 X1=128+(R+1)*COS(AE)
1610 Y1=96-(R+1)*SIN(AE)
1620 LINE(X0,Y0)-(X1,Y1),C
1630 NEXT R
1640 NEXT J
1650 RETURN
1800 '
1810 ' draw opaque ball
1820 '
1830 LINE(32,0)-(223,191),14,BF
1850 RETURN