VIC
Power Spirals

Bruce Jordan

Bruce Jordan

Computer art in the form of "spiro-graphic" designs. Spiro is an excellent demonstration of the high resolution color graphics capability of the VIC 20 Superexpander module. You'll see almost anything -from geodesic domes to impossible bottles.

"Spiro" works by choosing a screen location based on a value of a circular function; then, it uses the CIRCLE command of the Superexpander to draw a circle (I call them spiros) around the screen location. Next, the program loops back to the function, takes a new value, and the process is repeated until the design is complete.

When the program is run, it asks for information that gives you control over the final design.

Creating Your Design

The first thing that Spiro asks you is "How many spiros?" This determines how many times the spiro will be repeated across the screen. The higher the number, the more complex the design will be. Try 30 to start with.

Second, it asks "Alternate?" This allows you to create a design consisting of two different spiros. If you type Y, Spiro will ask you for the height and width of each of the two spiros to be used in your design. But if you type N, you will be asked for the height and width of a single spiro. Try N, and then 200 for the height and 150 for the width.

The last thing you are asked is which graphics mode you want your design to be drawn in. If you type 1, the design will be drawn in the multi color mode. If you choose 2, the design will be drawn in the high-resolution mode, and in black and white.

After the design is finished, you can return to the beginning of the program by typing R. This lets you alter your design by changing the parameters. If you type F after your design is complete, the program will automatically list the plotting function to allow for quick and easy editing.

Changing the plotting function will radically alter how your design will look. Depending on what function you use, you can wind up with anything from a geodesic sphere to a sort of improbable bottle that has its insides opening outwards to become its outsides! The best thing about Spiro is that it's unpredictable. Below is a list of some of the possible plotting functions. Try these, or make up your own and see what you get.

Plotting Functions For Spiro

1. X=511+200*COS(A), Y=511+250*SIN(A)

2. X=511+200*COS(A), Y=511+250*SIN(A)T↑3

3. X=511+200*COS(A)↑3, Y=511+250*SIN(A)↑3*COS(A)

4. X=511+150*SIN(A)+200*COS(A), Y=511+325*SIN(A)

5. X=511+200*SIN(A)*COS(A), Y=511+250*SIN(A)

One of the designs possible with a VIC-20 and "Power Spirals"

10 PRINT"{CLEAR}"

20 INPUT"HOW MANY SPIROS";Z

30 INPUT"ALTERNATE";A$

40 IFA$="N"THEN90

50 INPUT"#1 HEIGHT";H1

60 INPUT"#1 WIDTH";W1

70 INPUT"#2 HEIGHT";H2

80 INPUT"#2 WIDTH";W2:GOTO110

90 INPUT"HEIGHT OF SPIRO";H1

100 INPUT"WIDTH OF SPIRO";W1

110 INPUT"GRAPHICS MODE";G

120 IFG=ITHENP=3:K=0

130 IFG=2THENP=0:K=1

140 GRAPHIC G:COLOR K,4,P,7

150 A=0:DA=2*Π/Z

160 I=1:DI=1

170 GOSUB 280

180 CIRCLE I,X,Y,W1,H1

190 IF A$="Y" THEN GOSUB 350

200 A=A+DA:IF A=2*Π THEN 230

210 I=I+DI:IFI=>4THEN160

220 GOT0170

230 GETB$:IFB$=""THEN230

240 IFB$="R"THEN260

250 IFB$="F"THEN270

260 GRAPHIC 0:COLOR 1,2,0,4:GOTO 20

270 GRAPHIC 0:COLOR 1,2,0,4:LIST 280-290

280 X=511+200*COS(A)

290 Y=511+250*SIN(A)

300 IFX<=0THENX=0

310 IFX=>1023THENX=1023

320 IFY<=0THENY=0

330 IFY=>1023THENY=1023

340 RETURN

350 L=I:IFL<=2THENL=L+1:GOT0370

360 IFL=>3THENL=1

370 CIRCLE L,X,Y,W2,H2

380 RETURN