03-18-2005, 01:36 AM
This obviously isn't an entry for this challenge, but it's a fun program nonetheless. ^_^
*peace*
Meg
[syntax="QBASIC"]
'THIS PROGRAM MAKES USE OF THE CROSSCIRCLE SUB TO DISPLAY CIRCLES WITH LINES
'CUTTING ACROSS THEM AT PRESET NODE POINTS.
' - Written 03/17/2005 by mb
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'SUB DECLARATIONS
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
DECLARE SUB CrossCircle (x!, y!, r!, c%, n%, o!)
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'CHANGE TO GRAPHICS MODE 320x200
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
SCREEN 13
CLS
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'ROTATE A 10-NODE, 40-RADIUS CIRCLE IN THE CENTER OF THE SCREEN
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
offset! = 0
DO
offset! = offset! + .01
CrossCircle 160, 100, 40, 15, 10, offset!
WAIT &H3DA, 8
WAIT &H3DA, 8, 8
CrossCircle 160, 100, 40, 0, 10, offset!
LOOP UNTIL INKEY$ <> ""
SYSTEM
SUB CrossCircle (x!, y!, r!, c%, n%, o!)
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'THIS SUB DRAWS NODES AROUND A CIRCLE AND CONNECTS THEM WITH LINES
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'x! = x-coordinate of circle
'y! = y-coordinate of circle
'r! = radius of circle
'c% = color of circle
'n% = number of nodes in circle
'o! = offset of first node in radians
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'MAKE OUR NODE COORDINATE ARRAYS
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
REDIM nodeX!(1 TO n%)
REDIM nodeY!(1 TO n%)
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'STARTING AT OFFSET o!, CREATE EVENLY SPACED NODES AROUND THE CIRCLE
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
NodeDist! = (2 * 3.14159) / n%
NodeCurr! = o!
FOR i% = 1 TO n%
nodeX!(i%) = x! + COS(NodeCurr!) * r!
nodeY!(i%) = y! - SIN(NodeCurr!) * r!
NodeCurr! = NodeCurr! + NodeDist!
NEXT i%
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'CONNECT THE NODES TO EACH OTHER WITH LINES
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
FOR i% = 1 TO n% - 1
FOR j% = i% + 1 TO n%
LINE (nodeX!(i%), nodeY!(i%))-(nodeX!(j%), nodeY!(j%)), c%
NEXT j%, i%
END SUB
[/syntax]
*peace*
Meg
[syntax="QBASIC"]
'THIS PROGRAM MAKES USE OF THE CROSSCIRCLE SUB TO DISPLAY CIRCLES WITH LINES
'CUTTING ACROSS THEM AT PRESET NODE POINTS.
' - Written 03/17/2005 by mb
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'SUB DECLARATIONS
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
DECLARE SUB CrossCircle (x!, y!, r!, c%, n%, o!)
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'CHANGE TO GRAPHICS MODE 320x200
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
SCREEN 13
CLS
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'ROTATE A 10-NODE, 40-RADIUS CIRCLE IN THE CENTER OF THE SCREEN
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
offset! = 0
DO
offset! = offset! + .01
CrossCircle 160, 100, 40, 15, 10, offset!
WAIT &H3DA, 8
WAIT &H3DA, 8, 8
CrossCircle 160, 100, 40, 0, 10, offset!
LOOP UNTIL INKEY$ <> ""
SYSTEM
SUB CrossCircle (x!, y!, r!, c%, n%, o!)
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'THIS SUB DRAWS NODES AROUND A CIRCLE AND CONNECTS THEM WITH LINES
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'x! = x-coordinate of circle
'y! = y-coordinate of circle
'r! = radius of circle
'c% = color of circle
'n% = number of nodes in circle
'o! = offset of first node in radians
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'MAKE OUR NODE COORDINATE ARRAYS
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
REDIM nodeX!(1 TO n%)
REDIM nodeY!(1 TO n%)
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'STARTING AT OFFSET o!, CREATE EVENLY SPACED NODES AROUND THE CIRCLE
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
NodeDist! = (2 * 3.14159) / n%
NodeCurr! = o!
FOR i% = 1 TO n%
nodeX!(i%) = x! + COS(NodeCurr!) * r!
nodeY!(i%) = y! - SIN(NodeCurr!) * r!
NodeCurr! = NodeCurr! + NodeDist!
NEXT i%
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'CONNECT THE NODES TO EACH OTHER WITH LINES
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
FOR i% = 1 TO n% - 1
FOR j% = i% + 1 TO n%
LINE (nodeX!(i%), nodeY!(i%))-(nodeX!(j%), nodeY!(j%)), c%
NEXT j%, i%
END SUB
[/syntax]