home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / maths / pgplot_1 / Examples / f77 / PGDEMO6 < prev    next >
Text File  |  1997-02-04  |  2KB  |  67 lines

  1.       PROGRAM PGDEM6
  2. C-----------------------------------------------------------------------
  3. C Test program for PGPLOT: test of Cursor
  4. C-----------------------------------------------------------------------
  5.       INTEGER PGBEG, PGBAND
  6.       INTEGER JUNK, MODE
  7.       CHARACTER*1 CH
  8.       REAL X,Y
  9. C
  10.       WRITE(*,*) '   This program demonstrates the use of routine',
  11.      :             ' PGBAND. It'
  12.       WRITE(*,*) '   requires a graphics device with a cursor.',
  13.      :             ' Position the cursor'
  14.       WRITE(*,*) '   anywhere in the window. Press any key (or a mouse',
  15.      :             ' button if'
  16.       WRITE(*,*) '   the device has a mouse supported by PGPLOT); the',
  17.      :             ' program'
  18.       WRITE(*,*) '   draws a marker at the current cursor position and',
  19.      :             ' reports the'
  20.       WRITE(*,*) '   current cursor position [bottom left corner is',
  21.      :             ' (0,0); top'
  22.       WRITE(*,*) '   right is (1,1)] and the ASCII code of the key',
  23.      :             ' that you'
  24.       WRITE(*,*) '   pressed. To exit from the program, type a slash',
  25.      :             ' (/), ctrl-D,'
  26.       WRITE(*,*) '   or ctrl-Z. The + key toggles between normal',
  27.      :             ' cursor, cross-hair,'
  28.       WRITE(*,*) '   and other cursor modes (on supporting devices).'
  29. C
  30. C Open device for graphics.
  31. C
  32.       IF (PGBEG(0,'?',1,1) .NE. 1) STOP
  33. C
  34. C Clear the screen. Draw a frame at the physical extremities of the
  35. C plot, using full-screen viewport and standard window.
  36. C
  37.       CALL PGPAGE
  38.       CALL PGSVP(0.0,1.0,0.0,1.0)
  39.       CALL PGSWIN(0.0,1.0,0.0,1.0)
  40.       CALL PGBOX('bcts',0.1,5,'bcts',0.1,5)
  41. C
  42. C Loop to read and display cursor position. Initial position for cursor
  43. C is center of viewport. 
  44. C
  45.       X = 0.5
  46.       Y = 0.5
  47.       MODE = 0
  48.  10   CONTINUE
  49.           JUNK = PGBAND(MODE, 1, X, Y, X,Y,CH)
  50.           WRITE (*, '(2F8.3,I4)') X,Y,ICHAR(CH)
  51. C         Check for exit
  52.           IF (CH.EQ.'/' .OR. CH.EQ.CHAR(0) .OR. CH.EQ.CHAR(4) .OR.
  53.      :        CH.EQ.CHAR(26)) GOTO 20
  54. C         Check for switch of cursor type.
  55.           IF (CH.EQ.'+') THEN
  56.              MODE = MOD(MODE+1,8)
  57.              WRITE (*,*) 'Cursor mode:', MODE
  58.              GOTO 10
  59.           END IF
  60.           CALL PGPT1(X, Y, ICHAR(CH))
  61.       GOTO 10
  62. C
  63. C Close the device and exit.
  64. C
  65.  20   CALL PGEND
  66.       END
  67.