home *** CD-ROM | disk | FTP | other *** search
/ gondwana.ecr.mu.oz.au/pub/ / Graphics.tar / Graphics / VOGLE.ZIP / VOGLE / EXAMPLES / FMORETXT.FOR < prev    next >
Text File  |  2000-02-11  |  3KB  |  190 lines

  1. c
  2. c drawgrid
  3. c
  4. c    draw a grid in the middle of the screen
  5. c
  6.     subroutine drawgrid
  7.  
  8.     real x
  9.     integer i, GREEN, YELLOW
  10.     parameter (GREEN = 2, YELLOW = 3)
  11.  
  12.     call color(GREEN)
  13.  
  14.     call rect(0.1, 0.4, 0.9, 0.6)
  15.  
  16.     x = 0.2
  17.  
  18.     do 10 i = 1, 8
  19.         call move2(x, 0.4)
  20.         call draw2(x, 0.6)
  21.         x = x + 0.1
  22. 10    continue
  23.  
  24.     call move2(0.1, 0.5)
  25.     call draw2(0.9, 0.5)
  26.  
  27.     call color(YELLOW)
  28.  
  29.     end
  30.  
  31. c
  32. c demonstrate some more features of text
  33. c
  34.     program    fmoretxt
  35.  
  36.     character device*50, fname*80
  37.     integer BLACK
  38.     parameter (BLACK = 0)
  39.  
  40.     print*,'Enter output device:'
  41.     read(*,'(a)') device
  42.  
  43.     print*,'Enter a font name:'
  44.     read(*,'(a)') fname
  45.  
  46.     call vinit(device)
  47.  
  48.     call color(BLACK)
  49.     call clear
  50.  
  51.     call font(fname)
  52.  
  53.     call ortho2(0.0, 1.0, 0.0, 1.0)
  54.  
  55.     call drawgrid
  56.  
  57. c
  58. c show some scaled text on the grid (In the bottom part)
  59. c
  60.     call boxtext(0.1, 0.4, 0.8, 0.1,
  61.      +      '{This is Some text] | $')
  62.  
  63.     call getkey
  64.  
  65.     call color(BLACK)
  66.     call clear
  67.  
  68.     call drawgrid
  69.  
  70. c
  71. c centertext causes text to be centered around the current graphics
  72. c position this is especially usefull if you want your text to come
  73. c out centered on a line, or a character to be centered on a point
  74. c in a graph. A non-zero (.true.) argument turns centertext on.
  75. c
  76. c show a string centered on the center line
  77. c
  78.     call centertext(.true.)
  79.  
  80.     call boxtext(0.5, 0.5, 0.8, 0.1,
  81.      +      '{This is Some Centered text] | $')
  82. c
  83. c turn centertext off. We use an argument with the value zero (.false.).
  84. c
  85.     call centertext(.false.)
  86.  
  87.     call getkey
  88.  
  89.     call color(BLACK)
  90.     call clear
  91.  
  92. c
  93. c rotate the grid so that it is the same angle as the text after
  94. c textang for text ang.
  95. c
  96.     call pushmatrix
  97.         call translate(0.5, 0.5, 0.0)
  98.         call rotate(90.0, 'z')
  99.         call translate(-0.5, -0.5, 0.0)
  100.  
  101.         call drawgrid
  102.     call popmatrix
  103.  
  104. c
  105. c turn on centered text again
  106. c
  107.     call centertext(.true.)
  108.  
  109. c
  110. c set the angle to 90.
  111. c
  112.     call textang(90.0)
  113.  
  114. c
  115. c draw the string
  116. c
  117.     call boxtext(0.5, 0.5, 0.8, 0.1,
  118.      +      '{This is Some Rotated Centered text] | $')
  119. c
  120. c turn off center text
  121. c
  122.     call centertext(.false.)
  123.  
  124. c
  125. c set text angle back to 90
  126. c
  127.     call textang(0.0)
  128.  
  129.     call getkey
  130.  
  131.     call color(BLACK)
  132.     call clear
  133.  
  134.     call drawgrid
  135.  
  136. c
  137. c as all the software fonts are proportionally spaced we use
  138. c the fixedwidth call to make each character take the same amount
  139. c of horizontal space. As with centertext this is done by passing
  140. c fixedwidth a non-zero (.true.) argument.
  141. c
  142.     call fixedwidth(.true.)
  143.  
  144.     call boxtext(0.1, 0.5, 0.8, 0.1,
  145.      +      '{This is Some Fixedwidth text] | $')
  146.  
  147.     call getkey
  148.  
  149.     call color(BLACK)
  150.     call clear
  151.  
  152.     call drawgrid
  153.  
  154. c
  155. c now try centered and fixewidth at the same time
  156. c
  157.     call centertext(.true.)
  158.  
  159.     call move2(0.5, 0.5)
  160.     call drawstr('{This is Some Cent.Fixedwidth text] | $')
  161.  
  162.     call centertext(.false.)
  163.     
  164.     call getkey
  165.     call color(BLACK)
  166.     call clear
  167.  
  168.     call drawgrid
  169.  
  170. c
  171. c scale the text so tha a character is the size of a box in
  172. c the grid.
  173. c
  174.     call boxfit(0.8, 0.1, 8)
  175.  
  176. c
  177. c draw the two strings fixedwidth (it is still turned on)
  178. c
  179.     call move2(0.1, 0.4)
  180.     call drawstr('ABCDefgh')
  181.  
  182.     call move2(0.1, 0.5)
  183.     call drawstr('IJKLmnop')
  184.  
  185.     call getkey
  186.  
  187.     call vexit
  188.  
  189.     end
  190.