home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug044.arc / MANDALA.BAS < prev    next >
BASIC Source File  |  1979-12-31  |  2KB  |  79 lines

  1.  
  2.  
  3. 0 REM                M A N D A L A
  4. 1 REM
  5. 2 REM  MANDALA   REDONE      VER 1.3     9/20/76      ROB C/GCC III
  6. 10 DIM C$(6),A$(3)
  7. 12 C$ ="*.  $#"
  8. 14 P1=3.14159
  9. 22 PRINT
  10. 24 PRINT"  ** YOU **   DESIGN A MANDALA BY TYPING IN SOME NUMBERS."
  11. 26 PRINT
  12. 100 REM ** INITIAL DIALOG **
  13. 110 PRINT
  14. 120 PRINT "SIZE OF MANDALA IN INCHES "; 
  15. 130 INPUT S
  16. 135 LET S8=S
  17. 140 IFS>=1 AND S<=7THEN 180 
  18. 150 PRINT "MANDALAS CAN BE BETWEEN 1 AND 7 INCHES."
  19. 160 PRINT "SIZE ";
  20. 170 GOTO 130
  21. 180 S=INT(2.5*S-.5)
  22. 190 PRINT "DIP FREQUENCY AND IMPORTANCE ";
  23. 200 INPUT F1,C1
  24. 205 LET F8=F1:C8=C1
  25. 210 PRINT "RIPPLE FREQUENCY AND IMPORTANCE ";
  26. 220 INPUT F2,C2
  27. 225 LET F9=F2:C9=C2
  28. 230 PRINT "COMBINATION IMPORTANCE ";
  29. 240 INPUT C3
  30. 245 LET C7=C3
  31. 250 PRINT
  32. 260 PRINT"HERE IS YOUR MANDALA :"
  33. 270 PRINT
  34. 280 REM *** PARAMETER NORMALIZATION ***
  35. 290 F1=INT(F1+.5)
  36. 300 F2 =INT(F2+.5)
  37. 310 C1=ABS(C1)
  38. 320 C2=ABS(C2)
  39. 330 C3=ABS(C3)
  40. 340 C=C1+C2+C3
  41. 350 C1=3*C1/C
  42. 360 C2=3*C2/C
  43. 370 C3=3*C3/C
  44. 380 PRINT 
  45. 1000 REM *** PRINTING LOOP ***
  46. 1010 FOR Y=S TO -S STEP -1
  47. 1020 Y2=Y*Y
  48. 1030 REM FIND EDGE
  49. 1040 X1=S
  50. 1050 X2=-S
  51. 1060 X3=-1
  52. 1070 FOR X=X1 TO X2 STEP X3
  53. 1080 R=SQR(X*X+Y2)/S
  54. 1090 IF X <> O THEN 1120
  55. 1100 A=P1* SGN(Y)/2
  56. 1110 GOTO 1150
  57. 1120 A=ATN(Y/X)
  58. 1130 IF X>0 THEN 1150
  59. 1140 A=A+P1
  60. 1150 G1=SIN(F1*A)
  61. 1160 G2=SIN(F2*R*P1)
  62. 1170 Q=INT(C1*G1+C2*G2+C3*G1*G2+3)+1
  63. 1180 IF X3=1 THEN1250
  64. 1190 IF Q=3 ORQ=4 THEN 1260
  65. 1200 REM FOUND EDGE
  66. 1210 X1=-S
  67. 1220 X2=X
  68. 1230 X3=1
  69. 1240 GOTO 1070
  70. 1250 PRINT MID$(C$,Q,1);MID$(C$,Q,1);
  71. 1260 NEXT X
  72. 1270 PRINT 
  73. 1280 NEXTY
  74. 1290 PRINT 
  75. 1295 PRINTS8;F8;C8;F9;C9;C7 
  76. 1300 PRINT "HERE WE GO AGAIN...."
  77. 1310 GOTO 100
  78. 9999 END
  79.