home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / progm / pcgraphc.zip / GFUNCT.TXT < prev    next >
Text File  |  1989-01-14  |  26KB  |  738 lines

  1. Header Files
  2.  
  3. There are two header files used by these programs.  They are 
  4. gr_lib.h and graph.h .  The gr_lib.h file is used to compile the 
  5. code for the graphics routines and the labels.  The file graph.h 
  6. is for use with user programs and defines the screen modes which 
  7. are supported.  It also contains an external declaration for two 
  8. variables: X_mm and Y_mm.  These are the screen sizes of your 
  9. particular system.  If the scaling routines are to work properly, 
  10. these must be set to the particular hardware in use.  For 
  11. example:
  12.  
  13. extern double X_mm = 220.0, Y_mm = 160.0;    /* screen size in mm */
  14.  
  15. sets up the routines for a CRT with a graphics area 220 mm wide 
  16. and 160 mm tall.
  17.  
  18. To find the size of the graphics CRT on your system, run lb_demo 
  19. and measure the size of the frame drawn by this program.  Edit 
  20. the graph.h file definitions for X_mm and Y_mm and substitute 
  21. these numbers for the present values. 
  22.  
  23.  
  24.  
  25. Differences From the Hewlett-Packard Series 200/300 Workstation 
  26. BASIC
  27.  
  28. One of the major differences is the ability of the HP BASIC to 
  29. default non-existant arguments for functions.  For example,
  30. locate () requires all arguments to be present.  The BASIC 
  31. function LOCATE can have no arguments: it will draw a full screen 
  32. cursor on the screen for you to digitize the missing coordinates.  
  33. To do so in C would require access to the argument count when the 
  34. function is called.
  35.  
  36. While it is not impossible to access the argument count in a
  37. portable fashion, it is difficult to do so.  The portable
  38. argument count mechanism is aimed at functions which behave like
  39. printf (), and is not targeted to functions whose behavior
  40. changes with different argument counts.  It is also difficult to
  41. convince the compilers to accept function prototyping and yet
  42. permit varying argument counts without generating warnings.
  43.  
  44. For these reasons, all functions must have a complete list of 
  45. arguments, except for labelf () which functions perfectly with 
  46. the portable argument count mechanisms.  For the remaining 
  47. functions which require all arguments, an optional argument may 
  48. be set to zero.  In this case, the default value is used.  
  49. Functions which accept default values state this in the parameter 
  50. list for the function.
  51.  
  52.  
  53.  
  54. Supported Graphics Modes
  55.  
  56. The following graphics modes are supported: 
  57.  
  58. CGA_320x200    1    /* BIOS CGA 320x200, 4 color */
  59. CGA_640x200    2    /* BIOS CGA 640x200 BW */
  60. ATT_640x400    3    /* AT&T 640x400 BW, tiny type */
  61. EGA_320x200    4    /* IBM EGA low-res 320x200, 16 color */
  62. EGA_640x200    5    /* IBM EGA med-res 640x200, 16 color */
  63. EGA_640x350    6    /* IBM EGA high-res 640x350, 16 color */
  64. VGA_640x480    7    /* IBM VGA high-res 640x480, 16 color */
  65. VGA_320x200    8    /* IBM VGA lo-res 320x200, 256 color */
  66.  
  67. No provisions were made for the Hercules graphics controllers
  68. because no information was available on their programming when
  69. this code was written.  Inclusion of these modes simply requires
  70. linking in the support libraries and setting a flag in the
  71. g_init () routine which would be read by the putdot () function
  72. in graphx.c This function would then alternatively use either
  73. the BIOS interface or the Hercules library when drawing.
  74.  
  75.  
  76.  
  77. Function Summary
  78.  
  79.  
  80. clip ( Xmin, Xmax, Ymin, Ymax )
  81.  
  82. Parameter    Minimum value    Maximum value    Default   Units
  83.  
  84. Xmin        -1.7E+308    1.7E+308    none      User
  85. Xmax        -1.7E+308    1.7E+308    none      User
  86. Ymin        -1.7E+308    1.7E+308    none      User
  87. Ymax        -1.7E+308    1.7E+308    none      User
  88.  
  89. The function clip () defines a soft-clipping window within which 
  90. to plot.  The lower left corner of the window is defined by 
  91. ( Xmin, Ymin ), and the upper right corner of the window is 
  92. defined by ( Xmax, Ymax ).  The default soft clip window is set 
  93. by the locate () function.  Calling locate () resets the 
  94. soft clip window to the locate area.  
  95.  
  96. Note that this function is slightly different than the function 
  97. as implimented in HP workstation BASIC.  First, you must supply 
  98. arguments to the clip () function:  You can not omit the values 
  99. and digitize the corners of the soft clip window.  
  100. _________________________________________________________________
  101.  
  102.  
  103. clip_off ()
  104.  
  105. This function turns off the soft clipping limits and sets the 
  106. clipping window to the hard clip window ( either set by default 
  107. or the limit () function ).
  108. _________________________________________________________________
  109.  
  110.  
  111.  
  112. clip_on ()
  113.  
  114. This function turns on the soft clipping limits if they were 
  115. turned off by clip_off ().
  116. _________________________________________________________________
  117.  
  118.  
  119.  
  120. csize ( size, aspect_ratio, tilt_angle )
  121.  
  122. Parameter    Minimum    value    Maximum value    Default        Units
  123.  
  124. size         1.7E-308    1.7E+308    5        GDU's
  125. aspect_ratio     1.7E-308    1.7E+308    0.6
  126. tilt_angle    -1.7E+308    1.7E+308    none        current 
  127.                                 angle units
  128.  
  129. Default values for any argument are invoked by a zero (0) for 
  130. that argument.
  131.  
  132. This function controls the size, aspect ratio, and tilt angle of 
  133. the characters drawn by labelf ().  At initialization, the 
  134. character size is set to 5 GDU's, at an aspect ratio of 0.6.  
  135. There is no tilt.  Note that, although the angle ranges cover the 
  136. full range of type double, there is no point in using angles 
  137. which exceed either +/- 360 degrees or +/- 2 * pi radians.  
  138.  
  139. A floating point math error will occur for any angle which resolves 
  140. to n * 90 degrees or n * pi/2 radians for any odd values of n.
  141. _________________________________________________________________
  142.  
  143.  
  144.  
  145. deg ();
  146.  
  147. This function sets the current angle unit to degrees.
  148.  
  149. Affects: ldir (), pdir (), pivot ().
  150. _________________________________________________________________
  151.  
  152.  
  153.  
  154. draw ( X, Y )
  155.  
  156. Parameter    Minimum value    Maximum value    Default   Units
  157.  
  158. X        -1.7E-308    1.7E+308    none      current
  159. Y        -1.7E-308    1.7E+308    none      current
  160.  
  161.  
  162. This function draws a line from the current position to (X, Y) 
  163. using the current pen color and line type.  If the pen is up, 
  164. this function will lower the pen prior to drawing the line.  The 
  165. pen will remain down after the line is drawn.
  166. _________________________________________________________________
  167.  
  168.  
  169.  
  170. frame ()
  171.  
  172. Draw a frame around the current clipping window using the current 
  173. pen color and line type.  After the frame is complete, the pen is 
  174. positioned to the lower left corner of the frame and the pen is 
  175. raised.
  176. _________________________________________________________________
  177.  
  178.  
  179.  
  180. gclear ()
  181.  
  182. gclear () erases the data within the current clipping window.  
  183. The areas outside of this boundary are not affected.  Executing 
  184. the clip_off () function will cause gclear () to clear the 
  185. hard clip window.
  186.  
  187. Note:  This particular function is very (!!) slow on account of
  188. using the BIOS routines to place the pixels.  This allows machine 
  189. independence without significant software complexity and is very
  190. portable.  If it is not important to clear only the clip window,
  191. execution of g_init () will clear the entire screen, but all
  192. windowing, scaling, pivoting, plotting directions, labeling
  193. information, and current position are lost. 
  194. _________________________________________________________________
  195.  
  196.  
  197.  
  198. g_init ()
  199.  
  200. This function initializes the graphics function and sets the 
  201. screen mode to graphics.  This function must be called prior to
  202. issuing any call to any function in this library.  g_init ()
  203. sets the following parameters when called:
  204.  
  205. pen        1
  206. line type    1
  207. csize        4 GDU's
  208. pdir        0 degrees
  209. mode        degrees
  210. ldir        0 degrees
  211. lorg        1
  212. hard clip    full screen
  213. soft clip    full screen
  214. pivot        0 degrees at origin (0,0)
  215. _________________________________________________________________
  216.  
  217.  
  218.  
  219. graphics_off ()
  220.  
  221. This function will exit from the graphics screen and return to
  222. the alpha screen.  Unfortunately, unlike the Hewlett-Packard
  223. series 200/300 computers, the contents of the screen are erased
  224. by this transition. 
  225. _________________________________________________________________
  226.  
  227.  
  228.  
  229. idraw ( Xinc, Yinc )
  230.  
  231. Parameter    Minimum value    Maximum value    Default   Units
  232.  
  233. Xinc        -1.7E-308    1.7E+308    none      current
  234. Yinc        -1.7E-308    1.7E+308    none      current
  235.  
  236.  
  237. This function draws a line from the current position (Xp, Yp) to 
  238. position (Xp + Xinc, Yp + Yinc) using the current pen color and line
  239. type.  If the pen is up, this function will lower the pen prior
  240. to drawing the line.  The position (Xp, Yp) is then updated to 
  241. the new pen position.  When the line is finished, the pen will 
  242. remain down.
  243. _________________________________________________________________
  244.  
  245.  
  246.  
  247. imove ( Xinc, Yinc )
  248.  
  249. Parameter    Minimum value    Maximum value    Default   Units
  250.  
  251. Xinc        -1.7E-308    1.7E+308    none      current
  252. Yinc        -1.7E-308    1.7E+308    none      current
  253.  
  254. Function imove () incrementally moves from the current position
  255. (Xp, Yp) to position (Xp + Xinc, Yp + Yinc).  If the pen was 
  256. down, it is raised before moving.  After moving, (Xp, Yp) will
  257. be updated to the new pen position.
  258. _________________________________________________________________
  259.  
  260.  
  261.  
  262. iplot ( Xinc, Yinc, penc )
  263.  
  264. Parameter    Minimum value    Maximum value    Default   Units
  265.  
  266. Xinc        -1.7E-308    1.7E+308    none      current
  267. Yinc        -1.7E-308    1.7E+308    none      current
  268. penc        -32768        32767        none      N/A
  269.  
  270. iplot () draws incrementally from the last position (Xp, Yp) to 
  271. position (Xp + Xinc, Yp + Yinc).  After moving the position 
  272. (Xp, Yp) is updated to the new pen location.  The pen control 
  273. parameter (penc) is interpreted as follows:
  274.  
  275.     penc value    Action
  276.  
  277.     + Even        move and then raise pen
  278.     - Even        raise pen and then move
  279.     + Odd        move and then drop pen
  280.     - Odd        drop pen and then move
  281.  
  282. iplot () is affected by pivot () and pdir ().
  283. _________________________________________________________________
  284.  
  285.  
  286.  
  287. labelf ( "format string" [, optional argument list] );
  288.  
  289. labelf () functions exactly as printf ().  Imbedded carriage 
  290. returns result in the line starting 1 line below the present 
  291. line.  Labels are positioned by the functions lorg () and ldir
  292. () and the size is governed by csize ().  Care must be used when
  293. imbedding control characters.  In general, no non-printing
  294. characters are counted when label positions are calculated, and
  295. imbedded backspace characters (\b) are ignored.  A label may be
  296. drawn at any postion and angle using any size, aspect ratio, 
  297. and origin using any pen color and line type.  
  298.  
  299. Note that only line type # 1 will result in smooth and continuous 
  300. characters.
  301.  
  302. See also lorg (), ldir (), and csize ().
  303.  
  304. labelf () is not affected by pivot () and pdir () 
  305. transformations.
  306. _________________________________________________________________
  307.  
  308.  
  309.  
  310. ldir ( angle )
  311.  
  312. ldir () sets the angle at which to draw labels.  The 
  313. specification of the angle may be in degrees or radians as set 
  314. by the most recent deg () or rad () function call.  Positive 
  315. angle are measured counter-clockwise from the positive x-axis.
  316. _________________________________________________________________
  317.  
  318.  
  319.  
  320. limit ( Xmin, Xmax, Ymin, Ymax )
  321.  
  322. Parameter    Minimum value    Maximum value    Default       units
  323.  
  324. Xmin        -1.7E+308    1.7E+308    none       mm's
  325. Xmax        -1.7E+308    1.7E+308    none       mm's
  326. Ymin        -1.7E+308    1.7E+308    none       mm's
  327. Ymax        -1.7E+308    1.7E+308    none       mm's
  328.  
  329. The limit () function is used to re-define the hard clip 
  330. boundaries of the screen.  limit () clears any previous pivot () 
  331. data and returns the pivot angle to 0 and the pivot point to the 
  332. lower left corner (origin).  These are the absolute plotting 
  333. limits, and the pen can not be made to move outside of these 
  334. limits under program control.  
  335.  
  336. limit () does not change scaling parameters to reflect the 
  337. changed drawing area.  One should set the hard clip limits using 
  338. limit () and then define the scaling are (using locate () ) and 
  339. then scale the are using either mscale (), show (), or scale ().
  340. _________________________________________________________________
  341.  
  342.  
  343.  
  344. line_type ( type_no, repeat )
  345.  
  346. Parameter    Minimum value    Maximum value    Default       Units
  347.  
  348. type_no        1        10        none       N/A
  349. repeat        0        1.7E+308    5       GDU's
  350.  
  351. The default value for repeat length is invoked by a value of zero
  352. for this parameter.
  353.  
  354. The line_type () function is used to select lines for 
  355. differentiating between items in a drawing or graph.  There are 
  356. 10 line types described below.  Although the original HP programs 
  357. restricted line pattern repeats to integer multiples of 5 GDU's, 
  358. no such restriction is present in this program.
  359.  
  360. Line type    description
  361.  
  362. 1        Solid
  363. 2        Dot only at endpoint
  364. 3        Lightly dotted line
  365. 4        Densely dotted line
  366. 5        Broken line of one dash
  367. 6        Broken line of one dash and one dot
  368. 7        Broken line of one long dash and one short dash
  369. 8        Broken line of one dash and two dots
  370. 9        Solid line with 1 GDU ticks
  371. 10        Solid line with 2 GDU ticks
  372.  
  373. For line types 9 and 10, the ticks are drawn vertically for lines 
  374. within 45 degrees of the x-axis and horizontally for lines drawn 
  375. above 45 degrees from the x-axis.  Because the IBM PC and PC 
  376. compatibles do not generally have square pixels (i.e. pixel 
  377. aspect ratio and physical screen aspect ratio are not identical), 
  378. the apparent angle at which the switch between vertical and 
  379. horizontal ticks will not be 45 degrees.  This occurs because the 
  380. pixel drawing algorithm is based in pixels, and the calculation 
  381. of the starting and ending points of lines is scaled so that the 
  382. visual information is intuitively correct (i.e., a 45 deg. angle 
  383. appears as a 45 degree angle on the screen).  For example, assume 
  384. a PC has a 1.38:1 physical aspect ratio.  In the 640 x 200 
  385. drawing mode, the aspect ratio of the pixels is 3.20:1.  Thus, 
  386. the horizontal pixels are 2.33 times narrower than the vertical 
  387. pixels are tall.  The arctangent of 2.33 is 66.77 degrees.  A 
  388. line at 66.77 degrees (physically) will thus be at the pixel 
  389. ratio of 1:1 or 45 degrees as far as the drawing algorithm is 
  390. concerned.  Lines above this angle will have horizontal ticks 
  391. and lines below this angle will have vertical ticks.
  392.  
  393. Line patterns are continuous from one line to the next.  THus, if
  394. a move occurs after a particular line is drawn, the next line will
  395. start at the point in the pattern where the last line left
  396. stopped.  To re-start the line drawing pattern, simply call the
  397. line_type () function again with the same parameters as used in the
  398. call which set the current pattern.
  399.  
  400. _________________________________________________________________
  401.  
  402.  
  403.  
  404. locate ( Xmin, Xmax, Ymin, Ymax )
  405.  
  406. Parameter    Minimum value    Maximum value    Default       Units
  407.  
  408. Xmin        -1.7E+308    1.7E+308    none       GDU
  409. Xmax        -1.7E+308    1.7E+308    none       GDU
  410. Ymin        -1.7E+308    1.7E+308    none       GDU
  411. Ymax        -1.7E+308    1.7E+308    none       GDU
  412.  
  413. locate () is used to define the area to be scaled by scale (), 
  414. mscale (), or show ().  The parameters for the locate () 
  415. function are always interpreted as GDU's from the lower left 
  416. corner of the hard clip area (set by limit () ).  The locate () 
  417. function also defines the soft clip limits to be the same as the
  418. locate window.
  419. _________________________________________________________________
  420.  
  421.  
  422.  
  423. lorg ( origin_number )
  424.  
  425. Parameter    Minimum value    Maximum value    Default       Units
  426.  
  427. origin_number    1        9        none
  428.  
  429.  
  430. Select an origin for use with labelf ().  The following 
  431. illustrates the origin locations:
  432.  
  433.  3                  6                 9
  434.    +-----------------+-----------------+
  435.    |                 |                 |
  436.    |                 |                 |
  437.    |  b              |                 |
  438.    |  b              |                 |
  439.    |  b            5 |               8 |
  440.  2 +  b bbbb       oo+oo     x        x+
  441.    |  b     b    o   |   o    x      x |
  442.    |  b      b  o    |    o     x  x   |
  443.    |  b     b    o   |   o     x    x  |
  444.    |  bbbbb        oo|oo     x        x|
  445.    |                 |                 |
  446.    +-----------------+-----------------+
  447.   1                 4                 7
  448.  
  449.  
  450. In summary, origins 1, 2, or 3 deliver left justified text.  
  451. Origins 4, 5, or 6 center the text, and origins 8, 9, and 10 
  452. offer right justified text.  Justification is performed relative 
  453. to the current pen position.
  454. _________________________________________________________________
  455.  
  456.  
  457.  
  458. move ( X, Y )
  459.  
  460. Parameter    Minimum value    Maximum value    Default      Units
  461.  
  462. X        1.7E+308    1.7E+308    none      UDU's
  463. Y        1.7E+308    1.7E+308    none      UDU's
  464.  
  465. The move () function raises the pen and moves to the specified 
  466. (X, Y) position.  The pen remains up after a move.
  467.  
  468. move () is affected by pivot () transformations.
  469. _________________________________________________________________
  470.  
  471.  
  472.  
  473. mscale ( Xmin, Ymin )
  474.  
  475. Parameter    Minimum value    Maximum value    Default       Units
  476.  
  477. Xmin        -1.7E+308    1.7E+308    none       mm
  478. Ymin        -1.7E+308    1.7E+308    none       mm
  479.  
  480. Scale the locate area in millimeters.  The coordinate pair (Xmin, Ymin) 
  481. defines the lower left corner of the locate area.
  482.  
  483. For this function to work properly, it is necessary for the user 
  484. to provide the correct graphics screen size in the graph.h header 
  485. file.
  486. _________________________________________________________________
  487.  
  488.  
  489.  
  490. pen ( pen_number )
  491.  
  492. Parameter    Minimum value    Maximum value    Default       Units
  493.  
  494. pen_number    -32768        32767        none       none
  495.  
  496.  
  497. This function is used to select the color of the pen for 
  498. plotting.  The default pen after g_init () is pen # 1.  On the 
  499. Hewlett-Packard systems, pen # 1 is white at power up.  On the 
  500. IBM compatible computers, it is not.  Usually, the highest number 
  501. pen is white.  Pen numbers are limited to those defined for a 
  502. particular mode.  Pen numbers in excess of the maximum defined 
  503. for a particular graphics mode are usually drawn in background 
  504. color or not drawn at all.
  505.  
  506. A negative pen value overwrites in background color (i.e., a
  507. line drawn with pen # 1 and overwritten with pen # -1 will be
  508. erased from the screen).  Because of limitations in the PC 
  509. graphics hardware, any negative pen number erases all pixel 
  510. colors, not just the pixel colors for that pen.  This is because 
  511. the PC graphics adapters do not have a bitwise AND function built 
  512. in.  Instead, they have a bitwise XOR function.  This will erase 
  513. only pixels of the same color as are being drawn, but if no
  514. pixel is present in that color, it will draw one.  This behaviour 
  515. is highly undesireable, and for that reason, a negative pen 
  516. number will erase all line colors by drawing in background color.
  517. _________________________________________________________________
  518.  
  519.  
  520.  
  521. penup ()
  522.  
  523. penup () lifts the pen from the plotting surface.  On the CRT, 
  524. this stops line drawing.  The pen will remain up until pen 
  525. control is changed by another statement.
  526. _________________________________________________________________
  527.  
  528.  
  529.  
  530. pdir ( angle )
  531.  
  532. Parameter    Minimum value    Maximum value    Default       Units
  533.  
  534. angle        -1.7E+308    1.7E+308    none       degrees
  535.                                                            or
  536.                                                            radians
  537.  
  538. pdir () specifies the angle at which the axes are rotated when 
  539. drawing with incrimental or relative plotting functions iplot (),
  540. idraw (), imove (), rplot (), rdraw (), rmove ().  Labels written 
  541. with labelf () are not affected.  The angular units may be 
  542. specified either in degrees or radians.  At g_init (), the units 
  543. is degrees, but this may be changed at any time after g_init () 
  544. by using either deg () to set degrees, or rad () to set radians.
  545.  
  546. pdir () is affected by pivot ().
  547. _________________________________________________________________
  548.  
  549.  
  550.  
  551. pivot ( angle )
  552.  
  553. Parameter    Minimum value    Maximum value    Default       Units
  554.  
  555. angle        -1.7E+308    1.7E+308    none       degrees
  556.                                                            or
  557.                                                            radians
  558.  
  559. The pivot () function is used to rotate the coordinate axes by 
  560. angle around the current (X, Y) location.  This transformation 
  561. applies to all drawn lines except axes (), grid (), and label ().
  562. The current units for angle are used.
  563.  
  564. If pivot () is invoked a second time, it establishes a new pivot
  565. point using the original coordinate system. It does not pivot 
  566. about the current position in the current coordinate system (which
  567. is pivoted).  This means that the pivoting can be removed at any 
  568. point on the plot by invoking pivot ( 0 ).
  569. _________________________________________________________________
  570.  
  571.  
  572.  
  573. plot ( X, Y, penc )
  574.  
  575. Parameter    Minimum value    Maximum value    Default       Units
  576.  
  577. X        -1.7E-308    1.7E+308    none      current
  578. Y        -1.7E-308    1.7E+308    none      current
  579. penc        -32768        32767        none      N/A
  580.  
  581. plot () draws from the last position (X, Y) to the specified
  582. position (X, Y).  The type of line drawn is taken from the 
  583. current line type.  The pen control parameter (penc) is
  584. interpreted as follows:
  585.  
  586.     penc value    Action
  587.  
  588.     + Even        move and then raise pen
  589.     - Even        raise pen and then move
  590.     + Odd        move and then drop pen
  591.     - Odd        drop pen and then move
  592.  
  593. plot () is affected by pivot ().
  594. _________________________________________________________________
  595.  
  596.  
  597.  
  598. rad ()
  599.  
  600. This function set the current angle units to radians.
  601.  
  602. Affects: ldir (), pdir (), pivot ().
  603. _________________________________________________________________
  604.  
  605.  
  606.  
  607. ratio ()
  608.  
  609. The ratio function returns the aspect ratio of the hard clip area.  
  610. This is normally the full graphics screen unless the size has 
  611. been changed by using limit ().  Because the pixels in IBM PC 
  612. compatibles are not square ( that is, the number of pixels /cm in 
  613. the x-direction is not the same as the number of pixels /cm in 
  614. the y-direction), the number returned by this function may appear 
  615. to be non-sensical.  It is correct, but it reflects the aspect 
  616. ratio if the pixels were square.  This is one of several  
  617. limitations of the program which are hardware related.
  618. _________________________________________________________________
  619.  
  620.  
  621.  
  622. rdraw ( Xr, Yr )
  623.  
  624. Parameter    Minimum value    Maximum value    Default       Units
  625.  
  626. Xr        -1.7E+308    1.7E+308    none      current
  627. Yr        -1.7E+308    1.7E+308    none      current
  628.  
  629. The rdraw () function draws using the last absolute position 
  630. specified as the reference position (Xref, Yref).  A reference position is 
  631. the last position set by one of the following motion or plotting 
  632. functions: move (), draw (), plot (), imove (), idraw (), iplot 
  633. (), label (), axes (), frame (), or grid () .  A line is drawn from 
  634. the last position (X, Y) to the position (Xref + Xr, Yref + Yr).  
  635. The type of line drawn is taken from the current line type.  
  636.  
  637. rdraw () is affected by pivot () and pdir ().
  638. _________________________________________________________________
  639.  
  640.  
  641.  
  642. rmove ( X, Y )
  643.  
  644. Parameter    Minimum value    Maximum value    Default       Units
  645.  
  646. Xr        -1.7E+308    1.7E+308    none      current
  647. Yr        -1.7E+308    1.7E+308    none      current
  648.  
  649. The rmove () function moves using the last absolute position 
  650. specified as the reference position (Xref, Yref).  A reference position is 
  651. the last position set by one of the following motion or plotting 
  652. functions: move (), draw (), plot (), imove (), idraw (), iplot 
  653. (), label (), axes (), frame (), grid () .  The pen is moved from 
  654. the last position (X, Y) to the position (Xref + Xr, Yref + Yr).  
  655.  
  656. rmove () is affected by pivot () and pdir ().
  657. _________________________________________________________________
  658.  
  659.  
  660.  
  661. rplot ( X, Y, penc )
  662.  
  663. Parameter    Minimum value    Maximum value    Default       Units
  664.  
  665. Xr        -1.7E-308    1.7E+308    none      current
  666. Yr        -1.7E-308    1.7E+308    none      current
  667. penc        -32768        32767        none      N/A
  668.  
  669. The rplot () function draws using the last absolute position 
  670. specified as the reference position (Xref, Yref).  A reference position is 
  671. the last position set by one of the following motion or plotting 
  672. functions: move (), draw (), plot (), imove (), idraw (), iplot 
  673. (), label (), axes (), frame (), grid () .  A line is drawn from 
  674. the last position (X, Y) to the position (Xref + Xr, Yref + Yr).  
  675. The type of line drawn is taken from the current line type.  The 
  676. pen control parameter (penc) is interpreted as follows:
  677.  
  678.     penc value    Action
  679.  
  680.     + Even        move and then raise pen
  681.     - Even        raise pen and then move
  682.     + Odd        move and then drop pen
  683.     - Odd        drop pen and then move
  684.  
  685. rplot () is affected by pivot () and pdir ().
  686. _________________________________________________________________
  687.  
  688.  
  689.  
  690. show ( Xmin, Xmax, Ymin, Ymax )
  691.  
  692. Parameter    Minimum value    Maximum value    Default       Units
  693.  
  694. Xmin        -1.7E+308    1.7E+308    none       user
  695. Xmax        -1.7E+308    1.7E+308    none       user
  696. Ymin        -1.7E+308    1.7E+308    none       user
  697. Ymax        -1.7E+308    1.7E+308    none       user
  698.  
  699. The show () function scales the locate area such that a 
  700. physical representation of 1 unit along either the X- or Y-axis 
  701. has the same physical size (i.e., square objects appear square ).
  702. _________________________________________________________________
  703.  
  704.  
  705.  
  706. setgu ()
  707.  
  708. This function changes the display units of the drawing from user 
  709. defined units (UDU's) to graphics display units (GDU's). 
  710. _________________________________________________________________
  711.  
  712.  
  713.  
  714. setuu ()
  715.  
  716. This function changes the display units of the drawing from 
  717. graphics display units (GDU's) to user defined units (UDU's).  The 
  718. user units must have been previously defined using either scale (), 
  719. show (), or mscale ().
  720. _________________________________________________________________
  721.  
  722.  
  723.  
  724. scale ( Xmin, Xmax, Ymin, Ymax )
  725.  
  726. Parameter    Minimum value    Maximum value    Default       Units
  727.  
  728. Xmin        -1.7E+308    1.7E+308    none       user
  729. Xmax        -1.7E+308    1.7E+308    none       user
  730. Ymin        -1.7E+308    1.7E+308    none       user
  731. Ymax        -1.7E+308    1.7E+308    none       user
  732.  
  733. The scale () function defines the minimum and maximum user units 
  734. each axis of the area specified by locate ().
  735. _________________________________________________________________
  736.  
  737.  
  738.