home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume14 / vplot / part20 < prev    next >
Encoding:
Internet Message Format  |  1988-03-31  |  26.6 KB

  1. Subject:  v14i025:  Device-independant graphics system, with drivers
  2. Newsgroups: comp.sources.unix
  3. Sender: sources
  4. Approved: rsalz@uunet.UU.NET
  5.  
  6. Submitted-by: Joe Dellinger <joe@hanauma.STANFORD.EDU>
  7. Posting-number: Volume 14, Issue 25
  8. Archive-name: vplot/part20
  9.  
  10. #! /bin/sh
  11. # This is a shell archive.  Remove anything before this line, then unpack
  12. # it by saving it into a file and typing "sh file".  To overwrite existing
  13. # files, type "sh file -c".  You can also feed this as standard input via
  14. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  15. # will see the following message at the end:
  16. #        "End of archive 20 (of 24)."
  17. # Wrapped by rsalz@fig.bbn.com on Fri Mar 25 11:47:32 1988
  18. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  19. if test -f 'Vplot_Kernel/Documentation/vplot.mn' -a "${1}" != "-c" ; then 
  20.   echo shar: Will not clobber existing file \"'Vplot_Kernel/Documentation/vplot.mn'\"
  21. else
  22. echo shar: Extracting \"'Vplot_Kernel/Documentation/vplot.mn'\" \(25193 characters\)
  23. sed "s/^X//" >'Vplot_Kernel/Documentation/vplot.mn' <<'END_OF_FILE'
  24. X.TH VPLOT 9
  25. X.SH NAME
  26. vplot - definition of the vplot graphics metalanguage
  27. X.SH INTRODUCTION
  28. Vplot is a graphical meta-language that is interpreted by the
  29. X.B pen
  30. filters to produce plotted images
  31. in a device-independent way
  32. on many different graphics terminals
  33. and hard copy devices.
  34. New devices can readily be supported.
  35. Unfortunately,
  36. X.B vplot
  37. has only a primitive interactive capability.
  38. The reason for writing your plots in a device-independent
  39. intermediate plot language such as
  40. X.B vplot
  41. is to make your plot programs portable and long lasting.
  42. X.PP
  43. Vplot originally stood for `vector plot',
  44. but this name is now insufficient
  45. because vplot supports not only vectors,
  46. but also filled areas (either raster patterns or hatched),
  47. text (Hershey fonts),
  48. and raster images
  49. X(including grey-scale dithered ones on monochrome devices such as laser printers).
  50. X.SH COPYRIGHT
  51. Vplot is not in the public domain, although the copyright is not
  52. very restrictive. Here is the official Vplot copyright notice (the one
  53. that all the other manual pages and the source code tell you about):
  54. X.PP
  55. Copyright 1987 the Board of Trustees of the Leland Stanford Junior
  56. University.  All Rights Reserved.  Permission is hereby given
  57. to use, copy, modify, and distribute this software provided
  58. that (1) copyright and proprietary notices are retained in
  59. each copy, (2) any files which are modified are identified as such,
  60. and (3) you do not copy or distribute the software for payment or
  61. for commercial use without prior written consent from Stanford.
  62. STANFORD MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND
  63. concerning this software or its use.
  64. X.PP
  65. Vplot consists of everything in this distribution, except for the
  66. contents of ``.../vplot/Hershey'' and ``.../vplot/filters/loclib''.
  67. These are in
  68. the public domain. The contents of ``.../vplot/Hershey_Fonts'', which may
  69. or may not be included in your copy of the distribution, are under
  70. their own restrictions contained in the file README_Hershey.
  71. X.PP
  72. You are invited to make improvements to Vplot, support new devices,
  73. fix bugs, use Vplot as a spare parts junkyard, etc, as long as you
  74. abide by the copyright given above. Older public domain versions of
  75. Vplot exist, although not as complete and as bug-free as this ``official''
  76. version. Before embarking on any major project, you might want to
  77. ask me (Joe Dellinger) for advice as to how to proceed.
  78. Other than that, you're on your own.
  79. When all else fails, read the manual!
  80. X(And when that fails, read the source code.)
  81. X.PP
  82. You can get a tape of this distribution at cost by writing:
  83. X.br
  84. X
  85. X.br
  86. X    Office of Technology Licensing
  87. X.br
  88. X    Stanford University
  89. X.br
  90. X    350 Cambridge Avenue, Suite 250
  91. X.br
  92. X    Palo Alto, CA 94306
  93. X.br
  94. X
  95. X.SH ASSOCIATED PROGRAMS
  96. Self-documenting Utilities:    pldb plas
  97. X.br
  98. For info on pen programs:  man pen
  99. X.br
  100. For info on libvplot:  man libvplot
  101. X.br
  102. For info on text under vplot:  man vplottext
  103. X.br
  104. For info on raster under vplot:  man vplotraster
  105. X.br
  106. Library of test routines and examples:    .../vplot/filters/Tests/*
  107. X.SH COORDINATE SYSTEMS
  108. Vplot fits the largest 3-high by 4-wide rectangle
  109. X(or whatever ratio is defined by SCREENRATIO in vplot.h)
  110. onto the device's screen that it can. The rectangle is left and bottom justified.
  111. Clipping is not done to the edge of this rectangle, but to the edge of
  112. the device's screen. For convenience, from here on in the documentation I
  113. will consider the
  114. X3 by 4 rectangle inscribed inside the device's screen to BE the device's screen
  115. for the purposes of describing Vplot's coordinate system.
  116. X
  117. Vplot coordinates can either be measured in integer vplot units (the actual
  118. integer numbers that go into the metafile) or as real inches. How many integer
  119. units there are per inch for various sorts of Vplot primitives is defined in
  120. vplot.h. RPERIN is the number of integer vplot units per inch for most things.
  121. Unfortunately, in order to be backwards compatible we have to measure some
  122. primitives in different units: TXPERIN gives the number of text-height units
  123. per inch, and FATPERIN gives the number of line-fatness-width units per inch.
  124. X(HATCHPERIN is only used by libvplot, not vplot itself.)
  125. At Stanford, RPERIN=600, FATPERIN=200, and TXPERIN=33. These are not particularly
  126. convenient numbers, and new sites installing Vplot from scratch might consider
  127. selecting more reasonable values for all of these. (In theory, all you
  128. should have to do is change the definitions in vplot.h, update the
  129. documentation, and recompile everything in sight.)
  130. Whenever any of these ``magic numbers'' are referred to in code, they should
  131. be ``#define''d by vplot.h.
  132. X
  133. Two different scaling systems are possible, ``relative'' and ``absolute''.
  134. The so-called ``real inches'' in Vplot can either correspond to absolute
  135. inches on your device's screen (size=absolute),
  136. or can scale with the size of the screen (size=relative).
  137. How many inches tall the screen is considered to be unfortunately depends on
  138. the ``plot style'', which is defined next.
  139. X
  140. Two different coordinate systems are possible, ``standard'' and ``rotated''.
  141. X(This is called the ``plot style''.) The plot style can be set with the
  142. vplot `S' command, set from the command line, set from the environment,
  143. or allowed to default, with that order of precedence.
  144. X
  145. Standard Style: The origin is in the lower left hand corner, with
  146. the X axis horizontal and the Y axis vertical.
  147. If size=relative, the plot is scaled so that the screen is considered to be
  148. X10.24 (STANDARD_HEIGHT in vplot.h) inches tall. That is, if you move to
  149. the Vplot coordinate (in inches) of (x=0.,y=10.24), you will be at the top
  150. left corner of the screen no matter how big or small your device's screen
  151. actually is.
  152. X
  153. Rotated Style: Plot is scaled so that the screen is considered to be
  154. X7.5 inches tall. The origin is in the upper left hand corner, with the
  155. XX axis vertical running down the screen and the Y axis horizontal.
  156. If size=relative, the plot is scaled so that the screen is considered to be
  157. X7.5 (ROTATED_HEIGHT in vplot.h) inches tall. That is, if you move to the
  158. Vplot coordinate (in inches) of (x=7.5,y=0.) you will be at the bottom
  159. left corner of the screen no matter how big or small your device's screen
  160. actually is.
  161. X
  162. X.SH DESCRIPTION
  163. The following list constitutes the plot commands for
  164. the various plotting programs.
  165. The commands are universal in the sense that they are properly
  166. read in and appropriately used or ignored.
  167. The commands are specified by a literal one byte command
  168. character followed by zero or more half-word (2 byte) integers
  169. X(sometimes characters or bytes if so stated in the text).
  170. X.PP
  171. The program ``pldb'' converts the binary Vplot format described here into
  172. a human-readable ASCII one. Pldb-format Vplot follows the documentation here
  173. closely. Commas show where newlines occur in `pldb' format vplot that are not
  174. shown as newlines here.
  175. X.PP
  176. X.SH COMMANDS
  177. X.TP
  178. X.B e
  179. X.B erase
  180. the screen and start a new plot.
  181. All plot frames begin with an erase.
  182. X(The ``erase'' pen filter option can be used to add an erase as the very
  183. first thing in an input plot file, but will only do so if the plot file
  184. doesn't already have an initial erase.
  185. Erases that occur near, but not at, the beginning of the plot file
  186. are NOT considered initial erases, even if the commands preceding the erase
  187. produce no actual output on the device.)
  188. X.PP
  189. X.TP
  190. X.B b
  191. X.B break,
  192. same as erase in that it is a possible place to pause, but doesn't
  193. erase the screen. The erase command basically has 2 functions: first,
  194. it signals that the current frame of the plot is completed, and secondly
  195. it erases the current frame of the plot so that the next frame can start
  196. fresh. The break command only carries the first meaning. The ``next frame''
  197. of the plot builds upon the previous ones. This is useful when you want to
  198. be able to stop at various times as an image is being built up.
  199. X.TP
  200. X.B o x y
  201. redefine
  202. X.B origin
  203. X(0,0) on the device (the lower left hand corner of the screen for
  204. standard plot style
  205. with no global translations via pen command line options)
  206. as vplot (x,y). This shift applies to everything
  207. until the next origin command. An origin command is not affected by previous
  208. ones. Changing the plot style resets the origin to zero.
  209. X.TP
  210. X.B m x y
  211. X.B move
  212. the current position to (x,y).
  213. X.TP
  214. X.B d x y
  215. X.B draw
  216. a line from the current position to (x,y), and make this the
  217. new current position.
  218. X.TP
  219. X.B w xmin ymin xmax ymax
  220. set clipping
  221. X.B window.
  222. The initial window is set to the maximum dimensions of the
  223. particular plot device. If the coordinate system is rotated,
  224. the smallest clipping window with vertical and horizontal sides
  225. that contains the desired rotated clipping window will be used.
  226. If xmin > xmax or ymin > ymax, then an inverted window will
  227. be used that should clip away everything.
  228. X.TP
  229. X.B T size orientation, string
  230. Start
  231. X.B text
  232. mode.
  233. A character
  234. X.B string
  235. is plotted starting at the old pen position (as
  236. set by a previous move, draw, or text command).
  237. A nullbyte terminates the string.
  238. The character
  239. X.B size
  240. X(the height) is in units of 1/33'rds of an inch (Ug!).
  241. The character width is font and character dependent.
  242. The character
  243. X.B orientation
  244. is in degrees, and the angle is
  245. measured counter-clockwise from the X-axis.
  246. The carriage controls newline, carriage return, and backspace
  247. are correctly interpreted.
  248. The origin for newline and carriage return is taken as the
  249. pen position as of the last move.
  250. X.IP
  251. A large number of special escape sequences for accessing multiple fonts, colors,
  252. sizes, fatnesses, symbols, and positions of text are available. See man vplottext.
  253. X.IP
  254. The archaic text command
  255. X.B t
  256. has been left in the code only for backwards compatibility. It should no longer
  257. be used, so I'm not going to even tell you the ridiculous format it used.
  258. X.TP
  259. X.B
  260. G xpath ypath xup yup, string
  261. An alternate text command, which uses
  262. X.B GKS
  263. notation.
  264. The vector given by
  265. X.B xpath
  266. and
  267. X.B ypath
  268. is the ``text path vector'',
  269. and the vector given by
  270. X.B xup
  271. and
  272. X.B yup
  273. is the ``text up vector'', as defined in the GKS standard.
  274. Since it is important for these vectors to be very accurate,
  275. both are measured in units TEXTVECSCALE (defined in params.h,
  276. set to 10 at Stanford) times finer than normal vplot units.
  277. X.TP
  278. X.B f k
  279. Set line
  280. X.B fatness.
  281. The integer
  282. X.B k
  283. specifies the number of additional lines
  284. to be drawn parallel to, and one bit over from all
  285. future lines. The extra lines are added symmetrically.
  286. k=0 resets back to single-line mode. The fatness is scaled to approximate
  287. the behavior of a 200 pixel per inch device.
  288. X.TP
  289. X.B c k
  290. Select new
  291. X.B color
  292. from menu of 512 colors.
  293. X.B K
  294. is an integer from 0 to 511.
  295. Colors 0 through 7 are guaranteed to be by default the Regis colors:
  296. X0-background, 1-blue, 2-red, 3-magenta, 
  297. X4-green, 5-cyan, 6-yellow, and 7-white.
  298. X(This is the order of colors in a color bar pattern on a TV.
  299. It is used for that because on a black and white TV it makes a
  300. grey scale.)
  301. X.IP
  302. Color zero is always the background color.
  303. Monochrome devices should consider ANY non-zero color to NOT be
  304. the background color.
  305. X.IP
  306. See important comments in the `set color table' command with regards to color
  307. mapping.
  308. X.TP
  309. X.B C color red green blue
  310. set
  311. X.B Color
  312. table:
  313. Color number
  314. X.B color
  315. is set to have red value
  316. X.B red,
  317. green value
  318. X.B green,
  319. and blue value
  320. X.B blue.
  321. These are integers from 0 to 255, (or floats from 0. to 1. when using plas
  322. and pldb in inch or centimeter units)
  323. with 255 being fully on and 0 being fully off.
  324. The corresponding `grey level' for grey-scale devices is given by
  325. floor((4 * green + 2 * red + blue + 6) / 7). Note that the only way
  326. to get grey level 0 is if all three color levels are 0.
  327. X.IP
  328. Vplot will try to give you the color you want, but this may not always be
  329. possible. If the device has N settable colors, then colors
  330. X0 through N-1 will be set exactly as you request.
  331. If you attempt to define a color X outside
  332. of this range, Vplot will pick which color in the range 0 through N-1
  333. is the closest and map all requests for color number X to that available color
  334. value.
  335. Whenever any color in the range 0 through N-1 is changed, all the mappings
  336. will be re-calculated (although of course what is already drawn or
  337. stored cannot be changed.)
  338. X.IP
  339. This scheme is especially useful when for example mixing grey scales for
  340. raster information and bright colors for labels.
  341. The few bright colors which you might need are allocated to the first few
  342. color numbers. Then the remainder of the lower half of the color scale is
  343. filled with the grey level values you will need, but ordered so that the most
  344. important grey levels come first.
  345. In the upper half of the color table you define a normally ordered grey scale.
  346. Now when you want to draw grey scales, you refer only to the upper half of the
  347. grey scale and
  348. vplot will automatically map your requests down onto the real available colors of
  349. the particular device.
  350. X.IP
  351. Color zero is always the background color.
  352. Color 0 is only mapped to if the match is exact.
  353. X.TP
  354. X.B a npts
  355. X.TP
  356. X.B afat xmask ymask
  357. X.TP
  358. X.B x1 y1, x2 y2, ...
  359. Define polygonal
  360. X.B area
  361. for stippling (on monochrome devices) or solid
  362. area fill with current drawing color (for devices with color).
  363. The polygon is specified
  364. by its vertices
  365. X.B (x1,y1),...,(xn,yn).
  366. X.B Npts
  367. is the number of vertices;
  368. the polygon is automatically closed only if necessary.
  369. X.B Afat
  370. is the fatness of the outline; 0 is the minimum, and -1 draws no outline.
  371. The shading for monochrome devices is determined by the integer mask.
  372. A point within the polygonal area is darkened if
  373. X((x mod
  374. X.B xmask
  375. X== 0) and (y mod
  376. X.B ymask
  377. X)) is true, where
  378. x and y are all points within the polygon.
  379. For example, xmask=1 and ymask=1 fills  the area completely,
  380. and xmask=1 ymask=5 makes
  381. horizontal bars spaced 4 vertical bits apart.
  382. The origin for x and y coordinates used in shading 
  383. is device dependent but will usually be the lower left hand corner
  384. of the device screen.
  385. X.IP
  386. As a special case, if either
  387. X.B xmask
  388. or
  389. X.B ymask
  390. is zero no shading is done. (The area filling routine for the device is never
  391. even called.)
  392. This is true for both color and monochrome devices.
  393. X.TP
  394. X.B A npts
  395. X.TP
  396. X.B x1 y1, x2 y2, ...
  397. Fill polygonal
  398. X.B area
  399. with pattern or color.
  400. Fills polygon with patterns loaded with the `l' command (q.v.).
  401. The pattern number used is the same as the current drawing color.
  402. Note that a pattern can either be a hatch-line pattern or an arbitrary
  403. raster pattern, depending on the format of the `l' command used.
  404. X.IP
  405. The purpose of this scheme is to associate each color with a particular
  406. fill pattern. Once a current drawing color is set,
  407. all vectors will have that color and all
  408. filled areas will have the associated fill pattern.
  409. X.IP
  410. Devices that can't fill with arbitrary patterns should simply fill solidly
  411. with the current drawing color.
  412. If no pattern has been loaded, the `A' command will fill solidly
  413. with the current drawing color automatically.
  414. X.TP
  415. X.B l ppi nx ny ipat
  416. X.TP
  417. X.B XXXX..., ... (nx*ny X's)
  418. X.B Load
  419. raster pattern for `A' command.
  420. Each
  421. X.B `X'
  422. is an integer containing a color number.
  423. X(These color numbers can be  mapped, etc,
  424. just like color numbers in the `c' command.)
  425. The
  426. X.B X's
  427. represent pixels in a rectangular
  428. pattern of dimensions nx by ny.
  429. X(In pldb format the
  430. X.B X's
  431. are single-digit Hex numbers.)
  432. The pattern is repeated to fill the polygon.
  433. The pattern is scanned so that the first ny numbers are the first line, the
  434. second ny numbers are the second line, etc, for nx lines. The scanning of the
  435. pattern is done TV-style, ie starting at the upper left and working left-to-right
  436. and then top-to-bottom. (If in doubt, remember that patterns should appear
  437. on the device in the same orientation as in pldb-format vplot files.)
  438. X.IP
  439. The pattern is given the pattern number
  440. X.B ipat.
  441. This pattern will be used for
  442. filling by the `A' command when the current color is number
  443. X.B ipat.
  444. X.B Ppi
  445. is used to scale the pattern; it says how many pixels per inch you
  446. wanted this pattern to have.
  447. E.g. on a 300 pixel per inch device
  448. X.br
  449. X.B l 300 2 2 17
  450. X.br
  451. X.B 0 1
  452. X.br
  453. X.B 2 0
  454. X.br
  455. represents 
  456. X.br
  457. X01
  458. X.br
  459. X20
  460. X.br
  461. whereas 
  462. X.br
  463. X.B l 150 2 2 17
  464. X.br
  465. X.B 0 1
  466. X.br
  467. X.B 2 0
  468. X.br
  469. represents
  470. X.br
  471. X0011
  472. X.br
  473. X0011
  474. X.br
  475. X2200
  476. X.br
  477. X2200
  478. X.br
  479. where the digits are color numbers for the corresponding pixels.
  480. The result when you load a new pattern with the same pattern number
  481. as one already defined is device-dependent.
  482. X.TP
  483. X.B l angle -1 numhatch ipat
  484. X.TP
  485. X.B fat color offset interval,
  486. X.TP
  487. X.B ...,
  488. X.TP
  489. X.B (numhatch * 2 sets of 4)
  490. X.B Load
  491. hatch pattern for `A' command.
  492. The
  493. X.B angle
  494. gives the amount to rotate off horizontal. The
  495. X.B `-1'
  496. is a flag
  497. to distinguish this case from the previous command.
  498. X.B Numhatch
  499. is the number
  500. of sets of hatched lines to place in each direction (X and Y).
  501. Each set of hatched lines has four parameters:
  502. X.B fat, color, offset,
  503. and
  504. X.B interval.
  505. The
  506. X.B fat
  507. and
  508. X.B color
  509. give the fatness and color of every line in the set. The
  510. X.B interval
  511. is the spacing (in regular vplot units) between the lines.
  512. The
  513. X.B offset
  514. parameter displaces all the lines in the set.
  515. It should be less than the repeat interval.
  516. The purpose of
  517. X.B offset
  518. is so that you can
  519. have two different sets of lines (differently colored, perhaps) interleaved.
  520. All the X sets are specified, and then all the Y sets.
  521. X.IP
  522. X.B Ipat
  523. is the pattern
  524. number. (See above for explanation.)
  525. X.TP
  526. X.B v flag
  527. Change
  528. X.B overlay
  529. mode.
  530. X.br
  531. Overlay mode controls the opacity of the background color of polygon and raster
  532. fills (see `a',`A',`l',`r',`R').
  533. If flag=0, the polygon area is cleared before the new pattern is filled in.
  534. If flag=1, the new pattern is simply added to whatever is already there with
  535. what is underneath showing through where the new pattern is color 0.
  536. The default overlay flag can also be set in the command line.
  537. flag=0 mode takes significantly longer to fill the polygon on many devices.
  538. Some devices that have hardware raster or area fill may ignore this
  539. option if they are unable to implement it.
  540. X.TP
  541. X.B n
  542. X.B no-op
  543. for word aligning. Does nothing.
  544. X.TP
  545. X.B p
  546. X.B purge
  547. or flush plot buffers.
  548. X.TP
  549. X.B z, string
  550. Print
  551. X.B string
  552. out on the text screen of the plot device.
  553. X.TP
  554. X.B L npts
  555. X.TP
  556. X.B x1 y1, x2 y2, ...
  557. Draw a
  558. X.B polyLine
  559. through the given points.
  560. X.TP
  561. X.B M npts mtype msize
  562. X.TP
  563. X.B x1 y1, x2 y2, ...
  564. Draw
  565. X.B Markers
  566. of type
  567. X.B mtype
  568. and size
  569. X.B msize
  570. at the given set of points.
  571. For small integer values of
  572. X.B msize,
  573. this is as defined in GKS.
  574. For larger values, it is taken to be a font glyph number (for most fonts this
  575. will correspond to the ASCII character number. However
  576. X.B mtype
  577. may still be valid
  578. even when greater than 255 for some fonts.)
  579. X.B msize
  580. is measured in the same
  581. units as text is.
  582. X.TP
  583. X.B s ndash
  584. X.TP
  585. X.B dash1 gap1, dash2 gap2, ...
  586. Set line
  587. X.B style.
  588. This command is used to make dashed or dotted lines. It affects all
  589. vectors produced by the `m', `d', and `L' commands.
  590. X.B Ndash
  591. is the number of dash-gap pairs in the pattern.
  592. If
  593. X.B ndash
  594. is 0, then continuous vectors will be drawn.
  595. X.TP
  596. X.B J hjust vjust
  597. Set text
  598. X.B Justification.
  599. Values have meanings set in the include file
  600. X`/usr/include/vplot.h'. The finer points of text justification are
  601. discussed in `man vplottext'.
  602. X.TP
  603. X.B F font precision overlay_mode
  604. Set text
  605. X.B Font
  606. and
  607. X.B precision.
  608. X.B Font
  609. is an integer from 0 on up. Font
  610. numbers less than 100 are reserved for device-independent `gentext' fonts.
  611. X.B Precision
  612. is an integer zero through two, meaning: string, 0; char, 1; stroke, 2.
  613. The generic vplot text routine gentext draws everything with stroke precision,
  614. but only parses for ligatures at precision 2.
  615. The standard `pen' font should be font number 0.
  616. How many others are available is site-dependent, and should be documented
  617. in `man vplottext'.
  618. X.IP
  619. The overlay mode is an integer from 0 through 3, with the following meanings:
  620. X0: nothing unusual. 1: Draw a box around the text. 2: Clear behind the text
  621. with a polygon drawn in the background color before drawing the text.
  622. X3: both 1 and 2.
  623. X.IP
  624. All fonts, precisions, and text overlay modes are``#define''d in
  625. vplot.h.
  626. X.TP
  627. X.B S styleflag
  628. Set Vplot
  629. X.B Style.
  630. X.br
  631. Style is a single character, with possible values
  632. X`r' rotated, `s' standard, `a' absolute. Case distinctions
  633. don't matter. These affect the scaling and orientation of the plot.
  634. X``Standard'' and ``rotated'' styles are defined in the ``Coordinates''
  635. section at the beginning of this document. Absolute style is like standard style,
  636. except the plot is scaled to be in true inches. Some other archaic styles
  637. are recognized (old, mazama) but should no longer be used.
  638. The style is reset to the default at the start of every plot frame.
  639. It is probably a good idea to set the style immediately after every
  640. X.B erase
  641. command, especially if the style you want to use is not STANDARD.
  642. X.TP
  643. X.B R orient offset
  644. X.TP
  645. X.B xll yll, xur yur
  646. X.TP
  647. X.B xpix ypix
  648. X.TP
  649. X.B {linerep1, {numpat1 numbyte1, b1, b2, ...}}
  650. Byte deep
  651. X.B Raster
  652. data, each point having
  653. X.B offset
  654. added to it as it is
  655. read in. It is
  656. X.B xpix
  657. pixels wide and
  658. X.B ypix
  659. pixels tall, with lower left hand
  660. pixel at
  661. X.B (xll, yll)
  662. and width
  663. X.B xur-xll
  664. and height
  665. X.B yur-yll.
  666. X.B Linerep
  667. tells how many times to repeat the following raster line.
  668. X.B Numpat
  669. gives the number of repetitions
  670. of the following
  671. X.B numbyte
  672. bytes
  673. X.B b1, b2, ... bN
  674. within a line.
  675. This is repeated until all the bytes within the raster line have been
  676. accounted for. (The last byte of the line must also be the last byte of
  677. the repeat pattern.) The same holds for the loop over lines.
  678. X.IP
  679. The orientation of the axes of the raster is determined by the value of
  680. X.B orient.
  681. For
  682. X.B orient=0
  683. the raster is oriented TV-style, with the fast axis
  684. left-to-right and the slow axis top-to-bottom. For each increase of 1 in the
  685. value of
  686. X.B orient,
  687. the raster rotates 90 degrees clockwise.
  688. X.IP
  689. Note that the lower-leftmost pixel of the raster image will be exactly at
  690. the vplot coordinate
  691. X.B (xll,yll).
  692. However, the point at vplot coordinate
  693. X.B (xur,yur)
  694. will be the pixel just outside the raster image, touching the upper-rightmost
  695. corner. Things were done this way so that
  696. X.B xur-xll
  697. for example gives the width
  698. of the raster data box in vplot units.
  699. X.IP
  700. The
  701. X.B offset
  702. parameter is provided so that there is some way to access color
  703. table values greater than 255. (For example, 4 different 64-value color
  704. schemes could be defined in the color table in slots 256-511. You could switch
  705. between these by merely changing the value of
  706. X.B `offset'.
  707. X)
  708. X.TP
  709. X.B r orient rastermult
  710. X.TP
  711. X.B xll yll, xur yur
  712. X.TP
  713. X.B xpix ypix
  714. X.TP
  715. X.B {linerep1, {numpat1 numbit1, b1, b2, ...}}
  716. Same format as the `R' command, except that the data is encoded in bits
  717. and
  718. X.B rastermult
  719. is multiplied by the value of each bit.
  720. X8 bits are encoded into each byte, in each
  721. byte the bits ordered from highest to lowest. As many bytes are used as are
  722. needed to hold
  723. X.B numbit
  724. bits. For example, 13 bits would be encoded as
  725. X.br
  726. X.B
  727. b1: (1 2 3 4 5 6 7 8) b2: (9 10 11 12 13 X X X).
  728. X.TP
  729. X.B [, string
  730. Begin group named
  731. X.B string.
  732. X.TP
  733. X.B ]
  734. End last-opened group (it is an error to use this command if no group is
  735. open). Groups may be nested. Groups may not contain an erase command.
  736. Groups may not extend across files.
  737. X.SH "SEE ALSO"
  738. pen vplotlib vplottext vplotraster vplothacker
  739. X.SH "BUGS"
  740. There may be no bugs in the vplot language, but there are
  741. in the programs which read and write it.
  742. X.PP
  743. I had a heck of a time with troff bugs eating words and characters
  744. while trying to write this, so if
  745. something seems to be missing you might refer back to the unformatted
  746. original.
  747. X.PP
  748. Vplot at Stanford suffers somewhat by the restriction of having to remain
  749. backwards compatible to the stone age (1980). The vplot coordinate system is
  750. integers, with 600 pixels to the inch. A much higher resolution should be
  751. used! This isn't too hard to change, all you have to do is to make plas and pldb
  752. write and read 4 bytes instead of 2. (Plas and pldb already work with integers
  753. anyway, and there are no short ints used in the code anywhere.)
  754. Several other `magic numbers' show
  755. up in this documentation as well. These are defined in `vplot.h' and `params.h'.
  756. I recommend that any new site starting to use vplot from scratch change these
  757. numbers to more reasonable values. If ALL code uses the #define's in vplot.h,
  758. as all Vplot source code (hopefully) does and all user code ought, then these
  759. values can be changed without breaking any programs, only old metafiles.
  760. X.SH "AUTHOR"
  761. Robert W. Clayton began the vplot software while in the
  762. Geophysics Department at Stanford University (circa 1979) on a PDP-11.
  763. He was last seen at Cal Tech.
  764. Since then
  765. Jeff Thorson,
  766. Stew Levin,
  767. Jon Claerbout,
  768. Dave Hale,
  769. Ron Ullmann,
  770. Glenn Kroeger,
  771. Michel Debiche,
  772. Shuki Ronen,
  773. Doug Wilson,
  774. Wes Monroe,
  775. Chuck Karish,
  776. Steve Cole,
  777. Clement Kostov,
  778. Kai Lanz,
  779. Jean-Luc Guiziou,
  780. and especially
  781. Joe Dellinger have altered and expanded it almost beyond recognition,
  782. for the most part preserving backwards compatibility, even when that required
  783. compromising of ideals.
  784. This manual page was hacked together by Joe Dellinger out of an ancient and
  785. out-of-date original by Michel Debiche, which was itself a hack of something
  786. even more ancient of unknown origin.
  787. X.br
  788. X
  789. X.br
  790. X        Joe Dellinger,
  791. X.br
  792. X        (joe@hanauma.stanford.edu, decvax!hanauma!joe, convex!convexw!hanauma!joe)
  793. X.br
  794. X        Stanford Exploration Project
  795. X.br
  796. X        Dept of Geophysics, Stanford University, Jan 1988
  797. X.br
  798. X
  799. END_OF_FILE
  800. if test 25193 -ne `wc -c <'Vplot_Kernel/Documentation/vplot.mn'`; then
  801.     echo shar: \"'Vplot_Kernel/Documentation/vplot.mn'\" unpacked with wrong size!
  802. fi
  803. # end of 'Vplot_Kernel/Documentation/vplot.mn'
  804. fi
  805. echo shar: End of archive 20 \(of 24\).
  806. cp /dev/null ark20isdone
  807. MISSING=""
  808. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ; do
  809.     if test ! -f ark${I}isdone ; then
  810.     MISSING="${MISSING} ${I}"
  811.     fi
  812. done
  813. if test "${MISSING}" = "" ; then
  814.     echo You have unpacked all 24 archives.
  815.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  816. else
  817.     echo You still need to unpack the following archives:
  818.     echo "        " ${MISSING}
  819. fi
  820. ##  End of shell archive.
  821. exit 0
  822.