Squirler, The - Colin Barnsley (Your Spectrum-Issue 13-Page 59) Hands up all you budding Dalis and Da Vincis who, having spent hours with the latest graphics packages, stand back from that flickering screen, wiping bloodshot eyes, only to come to the conclusion that you should have stuck to textual programs? And how about those tasks the Art tutor used to set using a piece of string and an eccentric cog that just didn't seem to, well ... work? Well, here's a nifty little program that'll create amazing graphics for you - all it requires from you is a few numbers! The Squirler makes use of the INKEY$ command, and the current state of the variables are displayed in the menu; INKEY$ is used because, although it takes you longer to type this listing into the Speccy, the time taken to execute the program is reduced considerably. Another point to note is that the Spectrum calculates its angles in radians and the program stores it as such - however, as radians aren't the easiest quantities to work with, all the angles are displayed in degrees. When you RUN the program, you'll be presented with a menu on-screen; take a look at the options you're offered in the table given. Once you've entered some figures, the program determines how many arcs it's going to need to draw before your masterpiece is completed. Then, once all the values have been written into temporary variables for manipulation (without destroying their original values), plotting begins on-screen. On a final note, if you choose a variable that results in the Spectrum kicking back with an 'integer out of range' error message, you'll have to start the program up again with 'GO TO 20'. Do persevere with the program - it's not too long to type in, but some may find it a bit tricky to end up with a decent drawing first time out. Have a look at the sample inputs given ... and then experiment a little. You'll probably find you create your best designs by accident - but that's life! OPTION ACTION start The position on the circumference of an imaginary circle from which the very first arc is drawn; for example, '0' starts at the top, '270' at 9 o'clock, and so on. degree swing The number of degrees turned through - from the imaginary centre (x,y) of a circle - in one arc; thus, '60' gives a six-pointed shape, '72' a five-pointed shape, and so on. x,y position This gives the imaginary position of the centre of a shape in pixels; the co-ordinates of the screen centre is about (128,87). plots The number of full drawings that'll be completed in the final design. x,y slide The number of pixels to be added or subtracted from the imaginary centre after each complete drawing. circle radius The pixel radius of an imaginary circle in which the shape is drawn. circle squash The percentage reduction in size (per full drawing of the shape) of the imaginary circle's radius; thus, a 'cir squash' of '5' reduces the full drawing of the shape by five per cent. bend The number of degrees through which the direction is changed in one arc of a 'degree swing'. bend add The constant number of degrees to add (for each complete drawing of the shape) to accomplish the required 'bend'. degree revol'n The number of degrees of turn needed to end up at the starting point; thus, when n>1, 'cir squash' and 'bend' gives a spiral effect. plot Draws the final design. SQUIRLER EXAMPLE INPUTS WhirlingDevil Flowers Limpet GalaxiesHelmet Shell circle radius 80 80 80 80 start 0 0 0 0 degree swing 72 180 20 40 plots 30 36 5 30 bend 60 40 300 50 degree revol'n 3 5 0 4 circle squash 3 0 10 5 bend add 3 0 -2 0 x position 128 90 128 90 x slide 0 2 0 2.5 y position 87 87 87 87 y slide 0 0 0 0.5 Line 10 Initialises the variables used in the program. Lines 20-100 Display the various menu options available (see the Options table) and the current state of the variables. Note that the variable 'b' displays the angles in degrees, although the program itself stores this quantity in radians. Lines 105-270 Update the variables as the program is RUN. Lines 300-330 Determine the number of arcs per full plot of the shape. Line 350 Moves the parameter values to the temporary variable set. Lines 360-410 Begin the plotting on-screen. Calculations are made to find the value in radians that the shape should be turned through for the start and end of the swing, and a line is drawn between the points. Line 420 Checks for the 'exit' routine. If a call has been made to go to the 'exit' routine, the program flow is resumed at line 500. Line 430 Adjusts the slides and squashes once the shape has been plotted. Lines 440-470 When you've finished creating your design on-screen, you're given the option to either re-draw the BORDER or COPY. Lines 500-540 The 'exit' routine. Line 600 The 'BORDER draw' routine. ------------------------------------------------------------------------------ TYPE: Utility COMMENT: This info file was typed by Jim Grimwood Downloaded from: Desert Island Disks -- http://www.image.dk/~frankie/ Maintained by: Michael Bruhn -- frankie@image.dk