home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / lambda / soundpot / f / kpgraph.lbr / GRAPH1.BZS / GRAPH1.BAS
Encoding:
BASIC Source File  |  1993-10-26  |  4.5 KB  |  198 lines

  1. VAR INVERSE,REDUCED,BLINKING,UNDERLINE,CURSOR = CHAR
  2. INVERSE = '0'
  3. REDUCED = '1'
  4. BLINKING = '2'
  5. UNDERLINE = '3'
  6. CURSOR = '4'
  7. PROCEDURE PAUSE
  8.     VAR X = CHAR
  9.     INPUT3"PRESS <RETURN> KEY TO CLEAR SCREEN.....";X
  10. END
  11.  
  12. PROCEDURE SET.ON (ATT=CHAR)
  13.     PRINT CHR(27); 'B'; ATT;
  14. END
  15.  
  16. PROCEDURE SET.OFF (ATT=CHAR)
  17.     PRINT CHR(27); 'C'; ATT;
  18. END
  19.  
  20. PROCEDURE POSITION (VERT, HORZ = CHAR)
  21.     PRINT CHR(27); '=' ; VERT+31; HORZ+31;
  22. END
  23.  
  24. PROCEDURE PIXON (VERT1,HORZ1=CHAR)
  25.     PRINT CHR(27);'*';(VERT1+31);(HORZ1+31);
  26. END
  27.  
  28. PROCEDURE PIXOFF (VERT1,HORZ1=CHAR)
  29.     PRINT CHR(27);' ';(VERT1+31);(HORZ1+31);
  30. END
  31.  
  32. PROCEDURE LINEON (VERT1,HORZ1,VERT2,HORZ2=CHAR)
  33.     PRINT CHR(27);'L';(VERT1+31); (HORZ1+31); (VERT2+31); (HORZ2+31);
  34. END
  35.  
  36. PROCEDURE LINEOFF (VERT1,HORZ1,VERT2,HORZ2=CHAR)
  37.     PRINT CHR(27);'D';(VERT1+31);(HORZ1+31);(VERT2+31);(HORZ2+31);
  38. END
  39.  
  40. PROCEDURE CLEAR.SCREEN
  41.     PRINT CHR(26)
  42. END
  43.  
  44. FUNCTION SQRT(N=INTEGER) =INTEGER
  45.     VAR ROOT1,ROOT2 = INTEGER
  46.  
  47.     ROOT1 = N
  48.     ROOT2 = 1
  49.     WHILE (ROOT1 > ROOT2) DO BEGIN
  50.         ROOT1 = (ROOT1 + ROOT2)/2
  51.         ROOT2 = N/ROOT1
  52.     END
  53. END = ROOT1
  54.  
  55. PROCEDURE CIRCLE (CENTER.Y, CENTER.X, RADIUS = INTEGER)
  56.     VAR X, Y, OFFSET = INTEGER
  57.     OFFSET = (RADIUS * 100) / 141
  58.  
  59.     PIXON CENTER.Y + RADIUS - 1, CENTER.X
  60.     PIXON CENTER.Y - RADIUS + 1, CENTER.X
  61.  
  62.     FOR X = 1 TO OFFSET
  63.         Y = SQRT(RADIUS^2 - X^2)         
  64.  
  65.         PIXON CENTER.Y + Y , CENTER.X + X 
  66.         PIXON CENTER.Y + Y , CENTER.X - X 
  67.         PIXON CENTER.Y - Y , CENTER.X + X 
  68.         PIXON CENTER.Y - Y , CENTER.X - X 
  69.      NEXT 
  70.  
  71.     PIXON CENTER.Y, CENTER.X + RADIUS - 1
  72.     PIXON CENTER.Y, CENTER.X - RADIUS + 1
  73.  
  74.     FOR Y = 1 TO OFFSET
  75.         X = SQRT(RADIUS^2 - Y^2 )
  76.  
  77.         PIXON CENTER.Y + Y , CENTER.X + X 
  78.         PIXON CENTER.Y + Y , CENTER.X - X 
  79.         PIXON CENTER.Y - Y , CENTER.X + X 
  80.         PIXON CENTER.Y - Y , CENTER.X - X 
  81.      NEXT 
  82. END
  83.  
  84. PROCEDURE RECTANGLE (Y, X, HEIGHT, WIDTH = INTEGER)
  85.     LINEON Y, X, Y + HEIGHT, X
  86.     LINEON Y, X + WIDTH, Y + HEIGHT, X + WIDTH
  87.     LINEON Y, X, Y, X + WIDTH
  88.     LINEON Y + HEIGHT, X, Y + HEIGHT, X + WIDTH
  89. END
  90.  
  91. PROCEDURE SQUARE (Y, X, SIDE = INTEGER)
  92.     RECTANGLE Y, X, SIDE, SIDE
  93. END
  94.  
  95.  
  96. PROCEDURE BAR(REF.Y,REF.X,HEIGHT,WIDTH,DEPTH,INSIDE,VERT.P,HORZ.P=INTEGER)
  97.     VAR I, TEMP, EMPTY, FULL, X, Y = INTEGER
  98.     DIM INTEGER REF(2) CENTER(2) REAR(2)
  99.  
  100.     X = 1
  101.     Y = 2
  102.     FULL = 1
  103.     EMPTY = 0
  104.  
  105.     REF(X) = REF.X
  106.     REF(Y) = REF.Y
  107.     CENTER(X) = REF.X + (WIDTH * HORZ.P)
  108.     CENTER(Y) = REF.Y + (HEIGHT * VERT.P)
  109.     REAR(X) = CENTER(X) + (DEPTH * HORZ.P)
  110.     REAR(Y) = CENTER(Y) + (DEPTH * VERT.P)
  111.  
  112.     IF (INSIDE = EMPTY) THEN BEGIN
  113.         FOR I = REF(X) TO CENTER(X) STEP HORZ.P
  114.             LINEOFF REF(Y), I, CENTER(Y), I
  115.         NEXT I
  116.  
  117.         FOR I = 0 TO (WIDTH*HORZ.P) STEP HORZ.P 
  118.             LINEOFF CENTER(Y), CENTER(X)-I, REAR(Y), (REAR(X)-I)
  119.          NEXT I
  120.         FOR I = 0 TO (HEIGHT*VERT.P) STEP VERT.P
  121.             LINEOFF CENTER(Y)-I, CENTER(X), (REAR(Y)-I), REAR(X)
  122.         NEXT I
  123.  
  124.         LINEON REF(Y),REF(X),CENTER(Y),REF(X)
  125.         LINEON REF(Y),REF(X),REF(Y),CENTER(X)
  126.         LINEON CENTER(Y),CENTER(X),CENTER(Y),REF(X)
  127.         LINEON CENTER(Y),CENTER(X),REF(Y),CENTER(X)
  128.  
  129.         LINEON CENTER(Y),CENTER(X),REAR(Y),REAR(X)
  130.  
  131.         LINEON REF(Y),CENTER(X),(REAR(Y)-HEIGHT*VERT.P),REAR(X)
  132.         LINEON CENTER(Y),REF(X),REAR(Y),(REAR(X)-WIDTH*HORZ.P)
  133.     
  134.         LINEON REAR(Y),REAR(X),(REAR(Y)-HEIGHT*VERT.P),REAR(X)
  135.         LINEON REAR(Y),REAR(X),REAR(Y),(REAR(X)-WIDTH*HORZ.P)
  136.  
  137.     END
  138.  
  139.     IF (INSIDE = FULL) THEN BEGIN
  140.         FOR I = REF(X) TO CENTER(X) STEP HORZ.P
  141.             LINEON REF(Y), I, CENTER(Y), I
  142.         NEXT I
  143.  
  144.         FOR I = 0 TO (WIDTH*HORZ.P) STEP HORZ.P 
  145.             LINEON CENTER(Y), CENTER(X)-I, REAR(Y),(REAR(X)-I)
  146.          NEXT I
  147.         FOR I = 0 TO (HEIGHT*VERT.P) STEP VERT.P
  148.             LINEON CENTER(Y)-I, CENTER(X), (REAR(Y)-I),REAR(X)
  149.         NEXT I
  150.  
  151.         LINEOFF CENTER(Y),CENTER(X),CENTER(Y),REF(X)
  152.         LINEOFF CENTER(Y),CENTER(X),REF(Y),CENTER(X)
  153.  
  154.         LINEOFF CENTER(Y),CENTER(X),REAR(Y),REAR(X)
  155.     END
  156. END
  157.  
  158. PROCEDURE ONE_THREE
  159.     RECTANGLE 2,50,18,60
  160.     LINEON 20,80,26,80
  161.     LINEON 26,26,26,135
  162.     LINEON 26,26,32,26
  163.     LINEON 26,80,32,80
  164.     LINEON 26,135,32,135
  165.     RECTANGLE 32,2,36,48
  166.     RECTANGLE 32,56,36,48
  167.     RECTANGLE 32,110,36,48
  168. END
  169.  
  170. PROCEDURE ONE_TWO
  171.     RECTANGLE 2,50,18,60
  172.     LINEON 20,80,26,80
  173.     LINEON 26,40,26,120
  174.     LINEON 26,40,32,40
  175.     LINEON 26,120,32,120
  176.     RECTANGLE 32,2,36,75
  177.     RECTANGLE 32,83,36,75
  178. END
  179.  
  180. PROCEDURE NEXT_VIEW
  181.     POSITION 24,3
  182.     PAUSE
  183.     CLEAR.SCREEN
  184.     POSITION 24,3
  185. END
  186.  
  187. PROCEDURE DRAW_BOX
  188.  
  189. LINEON 2,2,    2,159
  190. LINEON 2,2,    98,2
  191. LINEON 98,2,   98,159
  192. LINEON 2,159,  98,159
  193.  
  194. LINEON 19,2,   19,159
  195. LINEON 19,51,  91,51
  196. LINEON 91,2,    91,159
  197.  
  198. END
  199. รจ