home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / l / l292 / 1.ddi / LOGDEM.FOR < prev    next >
Encoding:
Text File  |  1989-10-10  |  5.3 KB  |  179 lines

  1.         INCLUDE 'MISCIOFI.FOR'
  2.         INCLUDE 'STDHDR.FOR'
  3.     REAL    rr, rand
  4.     REAL xdata(0: maxv), ydata(0: maxv)
  5.     REAL y2data(0: maxv),y3data(0: maxv)
  6.     CHARACTER * 80     pathname, titlex, titley, titlew
  7.     INTEGER   plottype, i , chnum
  8.         CHARACTER ch, scancode
  9.  
  10.  
  11.  
  12.      DO i = 0, 50
  13.        rr = i + 1
  14.        xdata(i) = rr
  15.            CALL Random(rand)
  16.        ydata(i) = rr**2 * rand
  17.        y2data(i) = 1000.0+((2.0*rand)/2.0)*1000*COS(rr/2.0)
  18.        y3data(i) = 3000.0*(1.0-EXP(-rr/10.0))*(4.0-rand)/4.0
  19.      END DO
  20.      pathname = 'c:\FOR\LIB\*.FON'
  21.      CALL InitSEGraphics(-1,pathname)
  22.          CALL NoCursor()
  23.      CALL SetPercentWindow(0.01, 0.01, 0.255, 0.22, 6)
  24.      CALL SetPercentWindow(0.26, 0.01, 0.505, 0.22, 7)
  25.      CALL SetPercentWindow(0.51, 0.01, 0.755, 0.22, 8)
  26.      CALL SetPercentWindow(0.76, 0.01, 0.99, 0.22, 9)
  27.  
  28.      CALL SetCurrentWindow(6)
  29.      CALL BorderCurrentWindow(1)
  30.      CALL SetWin2PlotRatio(6, 0.2, 0.2, 0.05, 0.2)
  31.      CALL ScalePlotArea(0.0, 0.0, 50.0, 3000.0)
  32.      CALL SelectColor(15)
  33.      CALL SetXYIntercepts(0.0, 0.0)
  34.      titlew = 'SIGNAL #1'
  35.      titlex = 'FREQ.'
  36.      titley = 'MAG'
  37.      CALL TitleWindow(titlew)
  38.      CALL TitleXAxis(titlex)
  39.      CALL TitleYAxis(titley)
  40.      CALL SelectColor(1)
  41.      CALL DrawYAxis(500.0, 0)
  42.      CALL DrawXAxis(10.0, 0)
  43.      CALL LinePlotData(xdata, ydata, 50, 2, 0)
  44.  
  45.      CALL SetCurrentWindow(7)
  46.      CALL BorderCurrentWindow(1)
  47.      CALL SetWin2PlotRatio(7, 0.2, 0.2, 0.05, 0.2)
  48.      CALL ScalePlotArea(0.0, 0.0, 30.0, 3000.0)
  49.      CALL SetXYIntercepts(0.0,0.0)
  50.      CALL SelectColor(1)
  51.      CALL DrawYAxis(500.0, 0)
  52.      CALL DrawXAxis(10.0, 0)
  53.      CALL SelectColor(15)
  54.      titlew = 'SIGNAL #2'
  55.      CALL TitleWindow(titlew)
  56.      CALL TitleXAxis(titlex)
  57.      CALL TitleYAxis(titley)
  58.      CALL LinePlotData(xdata, y2data, 50, 2, 1)
  59.  
  60.      CALL SetCurrentWindow(8)
  61.      CALL BorderCurrentWindow(1)
  62.      CALL SetWin2PlotRatio(8, 0.2, 0.2, 0.05, 0.2)
  63.      CALL ScalePlotArea(0.0, 0.0, 50.0, 3000.0)
  64.      CALL SetXYIntercepts(0.0, 0.0)
  65.      CALL SelectColor(1)
  66.      CALL DrawYAxis(500.0, 0)
  67.      CALL DrawXAxis(10.0, 0)
  68.      CALL SelectColor(15)
  69.      titlew = 'SIGNAL #3'
  70.      CALL TitleWindow(titlew)
  71.      CALL TitleXAxis(titlex)
  72.      CALL TitleYAxis(titley)
  73.      CALL ScatterPlotData(xdata, y3data, 50, 2, 1)
  74.  
  75.      CALL SetCurrentWindow(9)
  76.      CALL BorderCurrentWindow(1)
  77.      CALL SetWin2PlotRatio(9, 0.2, 0.2, 0.05, 0.2)
  78.      CALL ScalePlotArea(25.0, 0.0, 50.0, 2000.0)
  79.      CALL SetXYIntercepts(25.0, 0.0)
  80.      CALL SelectColor(1)
  81.      CALL DrawYAxis(500.0, 0)
  82.      CALL DrawXAxis(10.0, 0)
  83.      CALL SelectColor(15)
  84.      titlew = 'SIGNAL #4'
  85.      CALL TitleWindow(titlew)
  86.      CALL TitleXAxis(titlex )
  87.      CALL TitleYAxis(titley)
  88.      CALL LinePlotData(xdata, ydata, 50, 2, 0)
  89.  
  90.      CALL SetPercentWindow(0.0, 0.25, 0.99, 0.8, 4)
  91.      CALL SetWin2PlotRatio(4, 0.17, 0.14, 0.05, 0.2)
  92.      CALL SetPercentWindow(0.0, 0.85, 0.99, 0.95, 1)
  93.  
  94.      CALL SetCurrentWindow(4)
  95.      CALL ClearWindow
  96.      CALL SetAxesType(1, 1)
  97.      CALL SelectColor(7)
  98.      CALL AutoAxes(xdata, ydata, 50, 0)
  99.      CALL LinePlotData(xdata, ydata, 50, 3, 1)
  100.      CALL SelectColor(1)
  101.      titlew =  'SEMI-LOG PLOT'
  102.      titlex =  'FREQUENCY'
  103.      titley =  'MAGNITUDE'
  104.      CALL TitleWindow(titlew)
  105.      CALL TitleXAxis(titley)
  106.      CALL TitleYAxis(titley)
  107.      CALL BorderCurrentWindow(1)
  108.      CALL SetLineStyleXX(1, 0, 0 )
  109.      CALL DrawGridX(1)
  110.      CALL DrawGridY(1)
  111.  
  112.      chnum = 1
  113.      DO WHILE ( chnum .NE. 0)
  114.        CALL SetCurrentWindow(1)
  115.        CALL ClearWindow
  116.        CALL SetLineStyleXX(0, 0, 0)
  117.        CALL BorderCurrentWindow(1)
  118.        CALL LabelGraphWindow(10.0, 600.0,
  119.      +       'Graph Type <1-3> or 0 to Quit  ', 0, 0)
  120.        CALL LabelGraphWindow(10.0, 200.0,
  121.      +       'GRAPH TYPE:   1-LINE-PLOT  2-SCATTER-PLOT  3-BAR-GRAPH',
  122.      +       0, 0)
  123.            CALL MoveToXX(400.0, 200.0)
  124.        CALL ReadKey(ch,scancode)
  125.            chnum = ICHAR(ch) - 48
  126. c       CALL LabelGraphWindow(900.0, 200.0, ch, 0, 0)
  127.        IF (chnum .GE. 1 .AND. chnum .LE. 3) THEN
  128.            CALL ClearWindow
  129.          CALL BorderCurrentWindow(1)
  130.          plottype = chnum
  131.          CALL LabelGraphWindow(10.0, 600.0,
  132.      +         'Enter Axis Type <1-3> ', 0, 0)
  133.          CALL LabelGraphWindow(10.0, 200.0,
  134.      +       'AXES TYPE:    1-AUTO-LIN  2-AUTO-SEMILOG  3-AUTO-LOG',0,0)
  135.         CALL ReadKey(ch,scancode)
  136.            chnum = ICHAR(ch) - 48
  137. c           CALL RealString(REAL(ch), 0, 1, Tch)
  138. c           CALL LabelGraphWindow(900.0, 200.0, Tch, 0, 0)
  139.  
  140.          CALL SetCurrentWindow(4)
  141.          CALL ClearWindow
  142.          SELECT CASE (chnum)
  143.            CASE (1)
  144.              CALL SetAxesType(0, 0)
  145.                CASE (2)
  146.                  CALL SetAxesType(0, 1)
  147.            CASE (3)
  148.                  CALL SetAxesType(1, 1)
  149.          END SELECT
  150.          CALL SelectColor(7)
  151.          CALL AutoAxes(xdata, ydata, 50, 0)
  152.          SELECT CASE (plottype)
  153.          CASE (1)
  154.          CALL LinePlotData(xdata, ydata, 50, 3, 1)
  155.          CASE (2)
  156.          CALL ScatterPlotData(xdata, ydata, 50, 3, 1)
  157.          CASE (3)
  158.          CALL BarGraphData(xdata, ydata, 50, 0.5, 3, 2)
  159.           END SELECT
  160.           CALL SelectColor(1)
  161.           IF (chnum .EQ. '1') THEN
  162.              titlew = 'LINEAR PLOT'
  163.           ELSEIF (chnum .EQ. '2') THEN
  164.             titlew = 'SEMI-LOG PLOT'
  165.           ELSE
  166.         titlew = 'LOG PLOT'
  167.           END IF
  168.           CALL TitleWindow( titlew )
  169.           CALL TitleXAxis(titlex)
  170.           CALL TitleYAxis(titley)
  171.           CALL BorderCurrentWindow(1)
  172.           CALL SetLineStyleXX(0, 0, 0)
  173.           IF (chnum .EQ. 1)  CALL DrawGridY(10)
  174.            END IF
  175.      END DO
  176.      CALL CloseSEGraphics
  177.  
  178.      END
  179.