PLOT88
福傳、C語言繪圖副程式
福傳、C語言繪圖副程式
軟體代號:6092
瀏覽次數:2303
Features
PLOT88 - a library of subroutines from PLOTWORKS, Inc. for your personal computer or SUN SparcStation to construct x-y plots, grids, contour maps and 3-D mesh drawings - is an industry-standard, device-independent graphics package. It has more than 50 subroutines including PLOT, NUMBER, SYMBOL, AXIS, SCALE, LINE, and FILL, to name a few. You write a FORTRAN main program that calls the PLOT88 subroutines to create the drawing.
With PLOT88, you can output publication-quality drawings to Hewlett-Packard plotters and jet printers, Houston Instrument plotters, dot matrix printers, and most display adapters. PLOT88 also has the ability to make Postscript, CGM, and AutoCAD DXF files.
PLOT88 is designed for use by the professional. Here are some examples of PLOT88 capabilities.
PLOT88 Function Summary A listing of functions and subroutines of the PLOT88 library.
The following subroutines are drawing primitives.
PLOTS
initializes the PLOT88 package.
PLOT
generates straight line segments from the current "pen" position to the specified position with the "pen" up or down.
PLOTD
generates straight, dashed line segments from the current "pen" position to the specified position.
STDASH
defines the characteristics of a dashed line.
OFFSET
defines the X & Y offset and scaling values.
FACTOR
defines drawing enlargement or reduction.
WINDOW
defines the location of the "drawing" window.
ROTTRN
rotates and translates the drawing on the output device.
WINORG
defines multiple windows to be drawn on one page.
NEWPEN
specifies the line width.
WHERE
returns the current (x,y) "pen" position and drawing scaling factor.
COLOR
defines the color index to be applied to lines and text.
PALETE
defines the color associated with the color index.
The following subroutines are used to draw text and symbols.
SYMBOL
draws characters and special centered symbols in two or three dimensions.
ASPECT
defines the width-to-height ratio of characters drawn by SYMBOL and NUMBER.
CHPATH
defines symbol character path (horizontal or vertical).
GETWID
returns the length of a character string.
NUMBER
converts a real number to a decimal equivalent character string and draws the string in two or three dimensions.
GETNUM
converts a single precision real number to its decimal equivalent as a character string.
FONT
selects a character set by its number.
IBMPLX
selects the IBM character set.
SIMPLX
selects the simplex character set.
DUPLX
selects the duplex character set.
COMPLX
selects the complex character set.
TRIPLX
selects the triplex character set.
SCRPLX
selects the script character set.
GRKPLX
selects the Greek character set.
The following subroutines are used to draw two-dimensional lines and axis.
SCALE
scans an array to determine its maximum and minimum values for use by LINE, CURVE, and AXIS.
LINE
a set of (x,y) points are drawn in two dimensions with optional straight lines between the points and an optional centered symbol at each point.
CURVE
draws a smooth line in two dimensions between a set of (x,y) points.
AXIS
draws a linear axis line with title, tic marks, and tic labels in two dimensions.
STAXIS
defines the format of axis tic annotation, axis title, and tic length.
STLINE
defines the line type and centered symbol characteristics used by LINE and LGLIN.
SCALG
determines the logarithmic scale factors for use by LGAXS and LGLIN.
LGAXS
draws a logarithmic axis in two dimensions with title, tics, and tic labels.
LGLIN
draws a log-log or semi-log line in two dimensions between a set of (x,y) points.
The following subroutines define and draw filled polygons.
FILL
provides shading of polygonal areas.
STFILL
selects the shading pattern used by FILL.
DFFILL
defines the fill pattern used by FILL.
The following subroutines are used prior to drawing two-dimensional contours and three-dimensional mesh "surfaces":
ZGRID
performs two-dimensional (surface) interpolation to construct a grid of (x,y) points using La Placian and spline interpolation.
DGRID
performs two dimensional (surface) interpolation to construct a grid of regularly spaced points using 1/(distance to a power).
ZSMTH
smooths the gridded data.
The following subroutines are for drawing two or three-dimensional contours with NO fill pattern between the contour lines:
ZSIDE
determines if a point is inside a polygon. Used when placing title blocks inside a contour map.
ZLEVEL
determines all contour levels present on a map.
ZPOST
marks and labels randomly spaced data points on the contour map (two-dimensional contours only).
ZCNTUR
draws the two or three dimensional surface contours based on a grid of control points.
ZCSEG
draws the two or three dimensional surface contours based on a grid of control points. Divides the grid into smaller areas for more precise contouring.
CCNTUR
draws the two or three dimensional surface contours based on a grid of control points and fills
the curface between the contour lines with a color/pattern.
CLEGND
draws a legend of contour levels for the CCNTUR drawn surface. .
The following subroutines are for controlling the drawing of three-dimensional text, axis, and contours:
DISP3D
defines the drawing spatial representation (two or three dimensions).
SCAL3D
defines the dimensions of the grid array in world units.
SYORNT
defines the drawing angle path for text and axis.
P3D2D
converts a point in three dimensions into its corresponding position on the output device. This routine is used to place annotation on the mesh surface drawing.
FIT3D
defines the three-dimensional space that will fit in the output two-dimensional window. Used when drawing a three-dimensional curve. No mesh surface is drawn.
AXIS3D
draws a linear axis line with title, tic marks, and tic labels in two dimensions.
LINE3D
draws a line in three dimensions with hidden line processing.
VISP3D
indicates if a point is visible after a mesh surface is drawn.
The following subroutines are for drawing three-dimensional mesh "surfaces":
MESH
defines the three-dimensional to two-dimensional transform and draws the three-dimensional mesh surface based on the grid of control points. No subgridding is performed.
MESHS
defines the three-dimensional to two-dimensional transform and draws the three-dimensional mesh surface based on the grid of control points. Each grid square is subsectioned to produce 2, 4, 8, or 16 mesh lines.
MESH4
draws a four dimensional mesh surface. The fourth dimension is shown as color on the surface. No subgrdiding is performed.
MSQUAL
defines the mesh surface line quality for plotter output.
MESHCI
defines the two color indexes used in drawing the mesh surface top and underside.
MSHCOL
defines the color contouring intervals used in drawing a mesh surface.
The following subroutines are used by the print spooler under Windows 95, 98, 2000, or NT to control the print output.
UsePrinter88
defines the printer to receive the PLOT88 output.
JobTitle88
assigns a title to the drawing in the print spool queue
PLOT88 Specifications
PLOT88 Operating Environment
Minimum Hardware Configuration:
For MicroSoft Operating Systems: IBM-PC * , IBM-XT * , IBM-AT * , IBM-PS/2 * or compatibles, 80386-,80486-, or Pentium-based PC
Minimum 512 K bytes RAM (varies with subroutines used) for MS FORTRAN 4 ( 128 MB for 32 bit compilers)
Intel 8087, 80287 or 80387 Coprocessor for MS FORTRAN 4
For SUN Operating Systems: SUN SPARCstation with SUN Solaris 2.X
For Red Hat Operating Systems: Pentium Based PC
One Hard Disk drive
CDROM drive
Required Software:
PC-DOS 2.0, 2.1, 3.0, 3.1, 3.2, 3.3, 4.0, 5.0, or 6.X with the following compiler
Microsoft FORTRAN v 4.01, 4.1, 5.0, 5.1, or 5.2
Windows 95, 98, NT, 2000, or XP with one of the following compilers:
Microsoft FORTRAN v 4.01, 4.1, 5.0, 5.1, or 5.2 or
Microsoft Power Station FORTRAN v 1.0 or 4.0 (4.0 with Windows 95, 98, NT , or 2000 only)
Compaq Digital Visual FORTRAN v 5.0, v 6.0, 6.1, 6.5, or 6.6 ( Using MicroSoft PowerStation Mode)(Windows 95, 98, NT , or 2000 only)
or
SUN Operating Systems: SUN FORTRAN 2.0, 3.0, or 4.0 and C or
Red Hat Operating Systems: GNU FORTRAN 0.5.24 ( Red Hat 6.2 OS ) or 0.5.26 (Red Hat 7.2 OS) and GNU gcc C
Supported Graphics Devices
Drivers for all of the following devices are provided. All output for the Red Hat and SUN versions of PLOT88 is to a file, not directly to the device. PLOT88 for MicroSoft PowerStation V 4.0 or Compaq Digital Visual FORTRAN V 5.0 use the print spooler to output to printers in Windows 95, 98, 2000, or NT. The same compilers use API32 calls to sends data to the plotters (serial ports). All others versions of PLOT88 use DOS interrupts to output to the printers or plotters.
Dot Matrix Printers
Epson FX-80, FX-80+ dot matrix printer
Epson RX-80, RX-100 dot matrix printer
Epson MX-80 with GRAPHTRAX option
Epson FX-85, FX-185, FX-286 dot matrix printer
Epson FX-100, FX-100+ dot matrix printer
Epson MX-100 dot matrix printer
Epson JX-80 dot matrix color printer (black print only)
IBM Personal Computer Graphics Printer
IBM ProPrinter
Okidata ml 92/93 personal printer with plug'n play kit
Okidata ML 182, 192 (IBM version) printer
Epson LQ-1500 dot matrix printer in modes 0, 1, 2 or 3
Centronics GLP printer Display Adapters (PC Version Only)
IBM Color Graphics Adapter or equivalent
IBM Enhanced Graphics Adapter or equivalent
Hercules Graphics Card
IBM Video Graphics Array (VGA) or equivalent
SVGA adapter (FORTRAN Power Station and Lahey LF90 only)
Plotters
HP ColorPro (HP 7440 F ) Plotter
HP 7470A F Graphics Plotter
HP 7475A F Graphics Plotter
HP 7550A F Graphics Plotter
HP DraftPro (HP 7570A F ) Drafting Plotter
HP DraftPro DXL (HP 7575A F ) Drafting Plotter
HP DraftPro EXL (HP 7576A F ) Drafting Plotter
HP DraftPro Plus (C 3170A, C3171A) Plotters
HP 7580B F Drafting Plotter
HP 7585B F Drafting Plotter
HP 7586B F Drafting Plotter
HP DraftMaster I (HP 7595A F ) Plotter
HP DraftMaster II (HP 7596A F ) Plotter
IBM 6180 Color Plotter (RS232C Interface only)
IBM 6182 Auto Feed Color Plotter (RS232C Interface only)
IBM 6184 Color Plotter (RS232C Interface only)
IBM 6186-1, 6186-2 Color Plotters (RS232C Interface only)
Ioline LP 3700 Large Format Plotter
Houston Instrument DMP-51 Plotter
Houston Instrument DMP-52 Plotter
Houston Instrument DMP-56 Plotter
Houston Instrument DMP-61 w/MP Plotter
Houston Instrument DMP-62 w/MP Plotter
Other Plotters supporting DM/PL, HP-GL or HP-GL/2 Language
Enter Computer SP-1000 Plotter
Enter Computer SP-1200 Drafting Plotter
LaserJet/Ink Jet Printers
HP 2686A F LaserJet Printer or LaserJet PLUS Printer
HP 2686D F LaserJet 500 Plus Printer
HP LaserJet Series II Printer (HP 33440A)
HP LaserJet Series IID Printer (HP 33447A)
HP LaserJet Series IIP Printer (HP 33471A)
HP LaserJet Series III Printer (HP 33449A)
HP Laser Jet Series 4 (HP C2001A), 4P (C2005A) Printers
HP PaintJet Printer (HP 3630A)
HP PaintJet XL (HP C1602A) and 300 XL (C1645A, C1656A) Printers
HP ThinkJet (HP 2225A) Printer
HP QuietJet (HP 2228A) and QuietJet Plus (2227A) Printers
HP DeskJet (HP 2276A), DeskJet+ (HP 2277A) & DeskJet Portable (HP 2614A) Printers
HP Desk Jet 1200C (C1676A), 1200C/PS (C1686A)
HP DeskJet 500C (HP C2114A), 520C , 550C (HP C2121A), 560C (HP C2168A), 310 (C2622A), 320 (C2634A)
Color Printers
HP DeskJet 550C, 660C, 680C, 692C, 850C, 1200C, 1600C
HP DesignJet 200 (C3180A, C3181A) Plotter
HP DesignJet (HP C1633A) and DesignJet 600 (C2847A, C2848A) Plotters
HP DesignJet 650C (C2858A/B, C2859A/B) Color Plotters
HP 7600, 240D, 240E Electrostatic Plotter
Apple Laser Writer
Sun SPARC Printer
Miscelleanous
Encapsulated Postscript output files (color, black&white)
AutoCAD DXF output files
CGM output files (binary, encoded, clear text)
HPGL/2 & HPGL output files
EXAMPLE PROGRAM
Here is the output drawing
This program illustrates some of the subroutine calls to the PLOT88 library.
C************************************************************
C
C Bell Curve example.
C
C************************************************************
C
PROGRAM BELL
C
C... Maximum number of data points allowed.
Parameter ( maxdat=13 )
C
C... Provide room in the data arrays for the scale values.
Parameter ( maxary=maxdat+2 )
C
C... Length of X and Y axes in inches.
Parameter ( xlen=6.0, ylen=4.0 )
C
C... Line parameters. "inc" indicates that every point in
C... the data arrays are plotted. "ic" is the centered symbol
C... number (0-15). "0" indicates a square centered symbol.
Parameter ( inc=1, ic=0, lt=1)
C
C... Origin of plot on page is up and over 1 inch.
PARAMETER (xorg=1.0, yorg=1.0 )
C
C... Height of axis title is 0.25 inches.
PARAMETER ( hgt=0.25 )
C
C... The X axis is drawn at zero degrees and the Y axis is
C... drawn at 90 degrees.
PARAMETER ( xang=0.0, yang=90.0 )
C
C... X and Y origin for axes.
PARAMETER ( xa=0.0, ya=0.0 )
C
C... STAXIS parameters. "annhgt" = height of tic mark annotation.
C... "tithgt" is the height of the axis title. "exphgt" is the height
C... of the axis exponents. "ticlen" is the length of the tics and
C... "ndeca" is the number of digits to the right of the decimal
C... in the axis annotation.
PARAMETER ( annhgt=0.15, tithgt=0.20, exphgt=0.1, ticlen=0.1)
PARAMETER ( ndeca=1 )
C
C... Ioport is COM1: at 9600 baud, Model is a HP plotter.
PARAMETER ( ioport=0000, model=64 )
C
C... Plot drawing at full size.
PARAMETER ( fact=1. )
C
C... Data arrays.
REAL XDATA ( maxary ) , YDATA ( maxary )
C
C... X and Y data arrays.
DATA XDATA /-3.0,-2.5,-2.0,-1.5,-1.0,-0.5,0.0,
- 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 0.0, 0.0/
DATA YDATA / .004,.018,.054,.130,.242,.352,.399,
- .352,.242,.130,.054,.018,.004,0.0,0.0/
C --------------------------------------------------
C
C Use PLOT88 to produce drawing.
C
C --------------------------------------------------
C
C... Initialize PLOT88 Library
CALL PLOTS ( 0, ioport, model )
C
C... Set the factor size
CALL FACTOR ( fact )
C
C... Select duplex type font.
CALL DUPLX
C
C... Reorigin plot up and over on page.
CALL PLOT ( xorg, yorg, -3 )
C
C... Scale X data
CALL SCALE ( XDATA, xlen, maxdat, inc )
C
C... Scale Y data
CALL SCALE ( YDATA, ylen, maxdat, inc )
C
C... STAXIS is an enhancement to the Industry Standard Plotting
C... Packages (ISPP). With this routine it is possible to set the
C... size of axis annotation and the number of digits to the
C... right of the decimal.
CALL STAXIS ( annhgt, tithgt, exphgt, ticlen, ndeca )
C
C... Plot X axis - Tics on the inside.
CALL AXIS ( xa, ya, 'Abscissa', -8, -xlen, xang,
- XDATA(maxdat+1), XDATA(maxdat+2) )
C
C... Plot Y axis - Tics on the inside
CAll AXIS ( xa, ya,'Ordinate', 8, -ylen, yang,
- YDATA(Maxdat+1), YDATA(maxdat+2) )
C
C... Plot line
CALL LINE ( xDATA, YDATA, maxdat, inc, LT, ic )
C... Get the length of the main title.
CALL GETWID ( hgt, 'Bell Curve', 10, TITWID )
C
C... Plot the title in the middle of the plot and 1/2 inch above the
C... top of the Y axis. The string is drawn at 0 degrees (horizontal)
XT = (xlen - titwid)/2.
YT = (ylen + 0.5)
CALL SYMBOL ( XT, YT, hgt, 'Bell Curve', xang, 10 )
C
C... *** Produce the drawing ***
CALL PLOT ( 0.0, 0.0, 999 )
C
C... End of program
STOP
END