RESET sets parameters back to their default values.
The call is: | CALL RESET (CNAME) | level 1, 2, 3 |
or: | void reset (char *cname); |
CNAME | is a character string containing the name of the routine whose parameters will be set back to default values. If CNAME = 'ALL', all parameters in DISLIN will be reset. |
The routine UNITS defines the plot units.
The call is: | CALL UNITS (COPT) | level 0 |
or: | void units (char *copt); |
COPT | is a character string that can have the values 'CM', 'INCH', 'POINTS' and 'TWIPS'. 'CM' means 100 points per centimeter, 'INCH' means 100 points per inch, 'POINTS' means 720 points per inch and 'TWIPS' means 1440 points per inch. Default: COPT = 'CM'. |
The routine PAGORG sets the origin of the page. By default, the page origin is located in the upper left corner of the page.
The call is: | CALL PAGORG (COPT) | level 1, 2, 3 |
or: | void pagorg (char *copt); |
COPT | is a character string that can have the values 'TOP' and 'BOTTOM'. The keyword 'TOP' sets the page origin to the upper left corner, 'BOTTOM' to the lower left corner. Default: COPT = 'TOP'. |
In DISLIN, all lines are plotted relative to the origin which is a point located in the upper left corner of the page. Modifying this point by ORIGIN produces a shifting of plot vectors on the page.
The call is: | CALL ORIGIN (NX0, NY0) | level 1 |
or: | void origin (int nx0, int ny0); |
NX0, NY0 | are the coordinates of the origin. Default: (0, 0). |
METAFL defines the metafile format.
The call is: | CALL METAFL (CFMT) | level 0 |
or: | void metafl (char *cfmt); |
CFMT | is a character string that defines the file format. |
= 'GKSL' | defines a GKSLIN metafile. |
= 'CGM' | defines a CGM metafile. |
= 'PS' | defines a coloured PostScript file. |
= 'EPS' | defines an Encapsulated PostScript file. The format is nearly the same as for 'PS'. |
= 'PDF' | defines a PDF file. |
= 'KYOC' | defines a Kyocera file. |
= 'HPGL' | defines an HPGL file. |
= 'SVG' | defines a Scalable Vector Graphics file. |
= 'WMF' | defines a Windows metafile. |
= 'GIF' | defines a GIF file. |
= 'TIFF' | defines a TIFF file. |
= 'PNG' | defines a PNG file. |
= 'PPM' | defines a portable pixmap format. |
= 'IMAG' | defines an image file. |
= 'BMP' | defines a Windows Bitmap format. |
= 'VIRT' | defines a virtual file. The metafile is hold in a raster format in computer memory. |
= 'CONS' | defines a graphics output on the screen. If the screen is a windows display, a graphical window is used that has nearly the size of the screen. |
= 'XWIN' | defines a window for graphical output. By default, the size of the window is nearly 2/3 of the size of the screen. Default: CFMT = 'GKSL'. |
Additional notes:
By default, the plotfile name consists of the keyword 'dislin' and an extension that depends on the file format. An alternate filename can be set with SETFIL.
The call is: | CALL SETFIL (CFIL) | level 0 |
or: | void setfil (char *cfil); |
CFIL | is a character string that contains the filename. |
The routine FILMOD determines if a new plotfile name is created for existing files.
The call is: | CALL FILMOD (CMOD) | level 0, 1, 2, 3 |
or: | void filmod (char *cmod); |
CMOD | is a character string containing the mode. |
= 'COUNT' | means that a new file version will be created. |
= 'DELETE' | means that the existing file will be overwritten. |
= 'BREAK' | means that the program will be terminated by DISINI. Default: CMOD = 'COUNT'. |
Normally, the background of screens and image formats such as TIFF, GIF, BMP and PNG is set tp 'BLACK'. With the routine SCRMOD, the back and foreground colours can be swapped.
The call is: | CALL SCRMOD (CMOD) | level 0 |
or: | void scrmod (char *cmod); |
CMOD | is a character string containing the mode. |
= 'AUTO' | uses a 'BLACK' background colour for screen output and image files. |
= 'REVERS' | means that the background colour is set to 'WHITE' and the foreground colour to 'BLACK'. |
= 'NOREV' | means that the background colour is set to 'BLACK' and the foreground colour to 'WHITE'. Default: CMOD = 'AUTO'. |
The routine CGMBGD sets the background colour for CGM files.
The call is: | CALL CGMBGD (XR, XG, XB) | level 0, 1, 2, 3 |
or: | void cgmbgd (float xr, float xg, float xb); |
XR, XG, XB | are the RGB coordinates of the background colour in the range 0 to 1. Default: (1., 1., 1.). |
The routine CGMPIC modifies the picture ID in CGM files. The picture ID may be referenced by some browsers.
The call is: | CALL CGMPIC (CSTR) | level 0, 1, 2, 3 |
or: | void cgmpic (char *cstr); |
CSTR | is a character string containing the picture ID (<= 256 characters). By default, the ID 'Picture n' is used where n is the picture number beginning with 1. |
The routine WMFMOD modifies the appearance of WMF files.
The call is: | CALL WMFMOD (CMOD, CKEY) | level 0 |
or: | void wmfmod (char *cmod, char *ckey); |
CMOD | is a character string containing the values 'STANDARD' or 'PLACEABLE'. If CMOD = 'PLACEABLE', an additional leading header of 22 byte is added to the WMF file. The format is also known as Aldus Placeable Metafile. |
CKEY | is a character string that can have the value 'FORMAT'. Default: CMOD = 'STANDARD'. |
The routine TIFMOD modifies the physical resolution of TIFF files.
The call is: | CALL TIFMOD (N, CVAL, COPT) | level 0 |
or: | void tifmod (int n, char *cval, char *copt); |
N | is an integer value containing the number of pixels per resolution unit. |
CVAL | is a character string containing the resolution unit. CVAL can have the values 'INCH' and 'CM'. |
COPT | is a character string that can have the value 'RESOLUTION'. Default: (100, 'INCH', 'RESOLUTION'). |
The routine PDFMOD selects between compressed and non compressed PDF files, and can enable PDF buffer output instead of file output.
The call is: | CALL PDFMOD (CMOD, CKEY) | level 0 |
or: | void pdfmod (char *cmod, char *ckey); |
CMOD | is a character string that can have the values 'ON' and 'OFF'. |
CKEY | is a character string that can have the values
'COMPRESSION and 'BUFFER'. For CKEY = 'BUFFER' and
CMOD = 'ON', the PDF file is hold in memory and can
be copied to an user buffer with the routine PDFBUF after DISFIN. Default: ('ON', COMPRESSION'), ('OFF', 'BUFFER'). |
The routine PDFMRK writes bookmarks to PDF files. This makes it possible to navigate through PDF files that contain multiple pages.
The call is: | CALL PDFMRK (CSTR, COPT) | level 1, 2, 3 |
or: | void pdfmrk (char *cstr, char *copt); |
CSTR | is a character string that contains the text of the bookmark. |
COPT | is a character string that can have the values 'CHAPTER', 'SECTION', 'SUBSECTION', 'PARAGRAPH' and 'SUBPARAGRAPH'. This option defines the level of a bookmark in the hierarchy of bookmarks. A bookmark with the option 'SECTION' can only be defined if a bookmark with the option 'CHAPTER' is defined before, and so on. |
The routine GIFMOD enables transparency for GIF files.
The call is: | CALL GIFMOD (CMOD, CKEY) | level 0 |
or: | void gifmod (char *cmod, char *ckey); |
CMOD | is a character string that can have the values 'ON' and 'OFF'. |
CKEY | is a character string that can have the value 'TRANSPARENCY'. Default: ('OFF', 'TRANSPARENCY'). |
The routine PNGMOD enables transparency for PNG files.
The call is: | CALL PNGMOD (CMOD, CKEY) | level 0 |
or: | void pngmod (char *cmod, char *ckey); |
CMOD | is a character string that can have the values 'ON' and 'OFF'. |
CKEY | is a character string that can have the value 'TRANSPARENCY'. Default: ('OFF', 'TRANSPARENCY'). |
Additional note:
The routine IMGFMT defines palette or truecolour mode for DISLIN image formats such as TIFF, PNG, BMP and IMAGE.
The call is: | CALL IMGFMT (CMOD) | level 0 |
or: | void imgfmt (char *cmod); |
CMOD | is a character string that can have the values 'INDEX' and 'RGB'. Default: CMOD = 'INDEX'. |
PAGE determines the size of the page.
The call is: | CALL PAGE (NXP, NYP) | level 0 |
or: | void page (int nxp, int nyp); |
NXP, NYP | are the length and height of the page in plot coordinates. The lower right corner of the page is the point (NXP-1, NYP-1). Default: (2970, 2100). |
SETPAG selects a predefined page format.
The call is: | CALL SETPAG (CPAGE) | level 0 |
or: | void setpag (char *cpage); |
CPAGE | is a character string that defines the page format. |
= 'DA4L' DIN A4, landscape, 2970 * 2100 points. = 'DA4P' DIN A4, portrait, 2100 * 2970 points. = 'DA3L' DIN A3, landscape, 4200 * 2970 points. = 'DA3P' DIN A3, portrait, 2970 * 4200 points. = 'DA2L' DIN A2, landscape, 5940 * 4200 points. = 'DA2P' DIN A2, portrait, 4200 * 5940 points. = 'DA1L' DIN A1, landscape, 8410 * 5940 points. = 'DA1P' DIN A1, portrait, 5940 * 8410 points. = 'DA0L' DIN A0, landscape, 11890 * 8410 points. = 'DA0P' DIN A0, portrait, 8410 * 11890 points. = 'USAL' US paper size A, landscape, 2790 * 2160 points. = 'USAP' US paper size A, portrait, 2160 * 2790 points. = 'USBL' US paper size B, landscape, 4320 * 2790 points. = 'USBP' US paper size B, portrait, 2790 * 4320 points. = 'USCL' US paper size C, landscape, 5590 * 4320 points. = 'USCP' US paper size C, portrait, 4320 * 5590 points. = 'USDL' US paper size D, landscape, 8640 * 5590 points. = 'USDP' US paper size D, portrait, 5590 * 8640 points. = 'USEL' US paper size E, landscape, 11180 * 8640 points. = 'USEP' US paper size E, portrait, 8640 * 11180 points. = 'PS4L' PostScript A4, landscape, 2800 * 1950 points. = 'PS4P' PostScript A4, portrait, 1950 * 2800 points. = 'HP4L' HP-plotter A4, landscape, 2718 * 1900 points. = 'HP4P' HP-plotter A4, portrait, 1900 * 2718 points. = 'HP3L' HP-plotter A3, landscape, 3992 * 2718 points. = 'HP3P' HP-plotter A3, portrait, 2718 * 3992 points. = 'HP2L' HP-plotter A2, landscape, 5340 * 3360 points. = 'HP2P' HP-plotter A2, portrait, 3360 * 5340 points. = 'HP1L' HP-plotter A1, landscape, 7570 * 5340 points. = 'HP1P' HP-plotter A1, portrait, 5340 * 7570 points. Default: CPAGE = 'DA4L'.S C L F A C
SCLFAC sets the scaling factor for an entire plot.
The call is: | CALL SCLFAC (XFAC) | level 0 |
or: | void sclfac (float xfac); |
XFAC | is the scaling factor by which the entire plot is scaled up or down. Default: XFAC = 1. |
The method by which graphics are scaled to the hardware pages of devices such as a graphics terminal can be selected with the routine SCLMOD.
The call is: | CALL SCLMOD (CMOD) | level 0 |
or: | void sclmod (char *cmod); |
CMOD = 'DOWN' | means that graphics will be scaled down if the hardware page of a device is smaller than the plotting page. |
CMOD = 'FULL' | means that the graphics will be scaled up or down depending upon the size of the hardware page. Default: CMOD = 'DOWN'. |
Additional notes:
GKSLIN and CGM files can be rotated by 90 degrees to use the full hardware page of a device. In general, this is done automatically by the driver program.
The call is: | CALL PAGMOD (CMOD) | level 0 |
or: | void pagmod (char *cmod); |
CMOD = 'LAND' | means that the metafile is not rotated. |
CMOD = 'PORT' | means that the metafile is rotated by 90 degrees. |
CMOD = 'NONE' | can be used to disable automatic plotfile rotation in the driver program (i.e. for PostScript files). Default: CMOD = 'LAND'. |
Figure 6.1 shows the effect of PAGMOD:
+--------------+ | | | ^ | | | | | | | +-----------------------+ | | | | ^ | | Portrait |X | | | | | | | | Y| Landscape | | | | | | | | | | | +---------------> | | <-------+ | | X | | Y | +-----------------------+ +--------------- Figure 6.1: PAGMODN E W P A G
NEWPAG creates a new page.
The call is: | CALL NEWPAG | level 1 |
or: | void newpag (void); |
Additional notes:
The routine HWPAGE defines the size of the PostScript hardware page.
The call is: | CALL HWPAGE (NW, NH) | level 0 |
or: | void hwpage (int nw, int nh); |
NW, NH | are the width and height of the PostScript hardware page in plot coordinates. Default: (1950, 2800). |
The routine HWORIG defines the hardware origin of the PostScript hardware page.
The call is: | CALL HWORIG (NX, NY) | level 0 |
or: | void hworig (int nx, int ny); |
NX, NY | are the plot coordinates of the hardware origin. Default: (75, 100). |
The printing of warnings and the output of the protocol in DISFIN can be disabled with the routine ERRMOD.
The call is: | CALL ERRMOD (CKEY, CMOD) | level 1, 2, 3 |
or: | void errmod (char *ckey, char *cmod); |
CKEY | is a character string that can have the values 'WARNINGS', 'CHECK', 'PROTOCOL' and 'ALL'. 'WARNINGS' means the error messages about bad parameters passed to DISLIN routines, 'CHECK' the out of range check of coordinates passed to plotting routines such as CURVE and 'PROTOCOL' the output of the protocol in DISFIN. |
CMOD | is a character string that can have the values 'ON' and 'OFF'. Default: ('ALL', 'ON') |
By default, the name of the error file is 'dislin.err'. An alternate filename can be set with ERRFIL.
The call is: | CALL ERRFIL (CFIL) | level 0 |
or: | void errfil (char *cfil); |
CFIL | is a character string that contains the filename. |
The routine ERRDEV defines the output device for DISLIN warnings. By default, warnings are written to the screen.
The call is: | CALL ERRDEV (COPT) | level 0 |
or: | void errdev (char *copt); |
COPT | is a character string that can have the values 'CONS' and 'FILE'. |
UNIT defines the logical unit used for printing error messages and listing data points that lie outside of the axis scaling.
The call is: | CALL UNIT (NU) | level 1, 2, 3 |
or: | void unit (FILE *nu); |
NU | is the logical unit. If NU = 0, all messages will be suppressed. Default: NU = 6 |
Additional note:
The routine WINAPP defines if a DISLIN program should look like a Windows console, or more like a Windows program. If Windows mode is selected, all warnings are written to an error file and the protocol in disfin is displayed in a widget.
The call is: | CALL WINAPP (COPT) | level 0 |
or: | void winapp (char *copt); |
COPT | is a character string that can have the values 'CONSOLE' and 'WINDOWS'. |
This routine defines, for X Window terminals, a region on the screen where the graphics will be displayed. By default, the window size is set to 2/3 of the screen size and located in the lower right corner of the screen.
The call is: | CALL WINDOW (NX, NY, NW, NH) | level 0, 1, 2, 3 |
or: | void window (int nx, int ny, int nw, int nh); |
NX, NY | are the screen coordinates of the upper left corner. |
NW, NH | are the width and height of the window in screen coordinates. |
Additional note:
This routine defines the size of windows and the resolution of DISLIN image formats such as TIFF, PNG, BMP, PPM and IMAGE. By default, the window size is set to 2/3 of the screen size, and the resolution of image formats is 853 x 603 pixels.
The call is: | CALL WINSIZ (NW, NH) | level 0, 1, 2, 3 |
or: | void winsiz (int nw, int nh); |
NW, NH | are the width and height of the window in pixels. |
The routine WINKEY enables a an additional key that can be used for program continuation is DISFIN. Normally, the mouse button 2 can be used for closing the graphics window.
The call is: | CALL WINKEY (CKEY) | level 1, 2, 3 |
or: | void winkey (char *ckey); |
CKEY | is a character string that can have the values 'NONE', 'RETURN' and 'ESCAPE'. Default: CKEY = 'NONE'. |
The routine CLRMOD defines the colour mode used for output on an X Window terminal.
The call is: | CALL CLRMOD (CMOD) | level 0 |
or: | void clrmod (char *cmod); |
CMOD | is a character string defining the mode. |
= 'NONE' | means that a colour table with 256 colours will be reduced to 129 colours to conserve current screen and window colours. The colour values will be reduced by the formula (0 <=> 0, i = (iclr + 1) / 2, iclr = 1, ... 255). |
= 'FULL' | means that all 256 colours will be displayed. |
= 'CONT' | means that a colour table with less than 129 entries will be used. Default: CMOD = 'NONE'. |
The routine X11MOD defines backing store for X graphic windows.
The call is: | CALL X11MOD (CMOD) | level 0 |
or: | void x11mod (char *cmod); |
CMOD | is a character string containing the mode. |
= 'NOSTORE' | means that graphical output is send directly to the graphics window. |
= 'STORE' | means that graphical output is send to a pixmap that will be copied to the graphics window. |
= 'AUTO' | means that 'NOSTORE' will be used on X11 and 'STORE' on Windows terminals. |
= 'PIXMAP' | means that only a pixmap is used. The graphics window
will be invisible. Default: CMOD = 'AUTO'. |
The routine WINMOD affects the handling of windows in the termination routine DISFIN.
The call is: | CALL WINMOD (CMOD) | level 1, 2, 3 |
or: | void winmod (char *cmod); |
CMOD | is a character string containing the mode. |
= 'FULL' | means that DISFIN is waiting for a mouse button 2 event. After program continuation, all windows are deleted. |
= 'NOHOLD' | means that DISFIN is not waiting for a mouse button 2 event. After a call to DISFIN, all windows are deleted. |
= 'NOERASE' | means that the program is still blocked in DISFIN but windows will not be deleted after program continuation. |
= 'NONE' | means that the program is not blocked in DISFIN and windows are not deleted. |
= 'DELAY' | means that the program is blocked for a short time in DISFIN before
it is continued. The delay time can be defined with the routine
WINOPT. Default: CMOD = 'FULL'. |
The routine WINOPT sets the delay time for the keyword 'DELAY' in WINMOD.
The call is: | CALL WINOPT (IOPT, CKEY) | level 1, 2, 3 |
or: | void winopt (int iopt, char *ckey); |
IOPT | is the delay time in seconds. |
CKEY | is a character string that can have the value 'DELAY'. Default: (10, 'DELAY'). |
The routine SETXID defines an external graphics window for X11 and Windows displays. All graphical output is sent to the external window. For X11 displays, an external pixmap can also be defined.
The call is: | CALL SETXID (ID, CTYPE) | level 0, 1, 2, 3 |
or: | void setxid (int id, char *ctype); |
ID | is the window or pixmap ID. |
CTYPE | is a character string that can have the values 'NONE',
'WINDOW', 'PIXMAP' and 'WIDGET'. For the keyword 'WIDGET', the
ID of a DISLIN draw widget can be used. Default: (0, 'NONE'). |
Additional notes:
The routine AXSTYP defines the type of an axis system. Axis systems can be plotted as rectangles or in a crossed form. For crossed axis systems, the scaling must be linear and the axis limits must contain the origin.
The call is: | CALL AXSTYP (COPT) | level 1 |
or: | void axstyp (char *copt); |
COPT | is a character string defining the type. |
= 'RECT' | defines a rectangular axis system. |
= 'CROSS' | defines a crossed axis system. Default: COPT = 'RECT'. |
AXSPOS determines the position of an axis system.
The call is: | CALL AXSPOS (NXA, NYA) | level 1 |
or: | void axspos (int nxa, int nya); |
NXA, NYA | are plot coordinates that define the lower left corner of an axis system. By default, axis systems are centred in the X-direction while NYA is set to the value (page height - 300). |
AXSORG is an alternate routine for defining the position of a crossed axis system.
The call is: | CALL AXSORG (NX, NY) | level 1 |
or: | void axsorg (int nx, int ny); |
NX, NY | are plot coordinates that define the position of the origin of a crossed axis system. |
AXSLEN defines the size of an axis system.
The call is: | CALL AXSLEN (NXL, NYL) | level 1 |
or: | void axslen (int nxl, int nyl); |
NXL, NYL | are the length and height of an axis system in plot coordinates. The default values are set to 2/3 of the page length and height. |
A call to the routine CENTER will centre the axis system on the page. All elements of an axis system, including titles, axis labels and names, will be taken into consideration. The centralisation is done by GRAF through changing the position of the origin. Therefore, all plotting routines called after GRAF will work with the new origin.
The call is: | CALL CENTER | level 1, 2, 3 |
or: | void center (void); |
Additional notes:
This routine sets the axis scaling to logarithmic or linear.
The call is: | CALL AXSSCL(CSCL, CAX) | level 1, 2, 3 |
or: | void axsscl (char *cscl, char *cax); |
CSCL = 'LIN' | denotes linear scaling. |
CSCL = 'LOG' | denotes logarithmic scaling. |
CAX | is a character string that defines the axes. Default: ('LIN', 'XYZ'). |
Additional note:
The parameters in GRAF will be calculated automatically by DISLIN if the routine SETSCL is used. In this case, GRAF must have dummy parameters in which DISLIN returns the calculated values.
The call is: | CALL SETSCL (XRAY, N, CAX) | level 1 |
or: | void setscl (float *xray, int n, char *cax); |
XRAY | is a vector that contains user coordinates. SETSCL calculates the minimum and maximum values of the data and stores them in a common block. |
N | is the number of points in XRAY. |
CAX | is a character string that defines the axes. |
Additional notes:
This routine is used to define the number of ticks between axis labels.
The call is: | CALL TICKS (NTIC, CAX) | level 1, 2, 3 |
or: | void ticks (int ntic, char *cax); |
NTIC | is the number of ticks (>= 0). |
CAX | is a character string that defines the axes. Default: (2, 'XYZ'). |
This routine defines the position of ticks.
The call is: | CALL TICPOS (CPOS, CAX) | level 1, 2, 3 |
or: | void ticpos (char *cpos, char *cax); |
CPOS | is a character string defining the position. |
= 'LABELS' | means that ticks will be plotted on the same side as labels. |
= 'REVERS' | means that ticks will be plotted inside of an axis system. |
= 'CENTER' | means that ticks will be centred on the axis line. |
CAX | is a character string that defines the axes. Default: ('LABELS', 'XYZ'). |
TICLEN sets the lengths of major and minor ticks.
The call is: | CALL TICLEN (NMAJ, NMIN) | level 1, 2, 3 |
or: | void ticlen (int nmaj, int nmin); |
NMAJ | is the length of major ticks in plot coordinates (> 0). |
NMIN | is the length of minor ticks in plot coordinates (> 0). Default: (24, 16). |
The routine TICMOD modifies the plotting of minor tick marks on calendar axes. By default, a major tick is plotted at each date label and no minor ticks are plotted.
The call is: | CALL TICMOD (COPT, CAX) | level 1, 2, 3 |
or: | void ticmod (char *copt, char *cax); |
COPT | is a character string defining the tick marks. |
= 'NONE' | means that no minor ticks will be plotted. |
= 'DAYS' | means that ticks will be plotted for every day. |
= 'MONTH' | means that ticks will be plotted for every month. |
= 'DMONTH' | means that ticks will be plotted for every second month. |
= 'QUARTER' | means that ticks will be plotted on the first of January, April, July and October. |
= 'HALF' | means that ticks will be plotted on the first of January and July. |
= 'YEAR' | means that ticks will be plotted for every year. |
CAX | is a character string that defines the axes. Default: ('NONE', 'XYZ'). |
The appearance of minor ticks on logarithmic axes differs slightly from linear axes. By default, logarithmic minor ticks are generated automatically if the label step is 1 or -1 and if the number of ticks in TICKS is greater than 1. If the step has another value, minor ticks are plotted as specified in TICKS. This algorithm can be modified with LOGTIC.
The call is: | CALL LOGTIC (CMOD) | level 1, 2, 3 |
or: | void logtic (char *cmod); |
CMOD | is a character string defining the appearance of logarithmic ticks. |
= 'AUTO' | defines default ticks. |
= 'FULL' | means that logarithmic minor ticks will be generated for every cycle even if the label step is not 1 but some other integer. Default: CMOD = 'AUTO'. |
LABELS determines which label types will be plotted on an axis.
The call is: | CALL LABELS (CLAB, CAX) | level 1, 2, 3 |
or: | void labels (char *clab, char *cax); |
CLAB | is a character string that defines the labels. |
= 'NONE' | will suppress all axis labels. |
= 'FLOAT' | will plot labels in floating-point format. |
= 'EXP' | will plot floating-point labels in exponential format where fractions range between 1 and 10. |
= 'FEXP' | will plot labels in the format fEn where f ranges between 1 and 10. |
= 'LOG' | will plot logarithmic labels with base 10 and the corresponding exponents. |
= 'CLOG' | is similar to 'LOG' except that the entire label is centred below the tick mark; with 'LOG', only the base '10' is centred. |
= 'ELOG' | will plot only the logarithmic values of labels. |
= 'TIME' | will plot time labels in the format 'hhmm'. |
= 'HOURS' | will plot time labels in the format 'hh'. |
= 'SECONDS' | will plot time labels in the format 'hhmmss'. |
= 'DATE' | defines date labels. |
= 'MAP' | defines geographical labels which are plotted as non negative floating-point numbers with the following characters 'W', 'E', 'N' and 'S'. |
= 'LMAP' | is simular to 'MAP' except that lowercase characters are used. |
= 'DMAP' | selects labels that are plotted as floating-point numbers with degree symbols. |
= 'MYLAB' | selects labels that are defined with the routine MYLAB. |
CAX | is a character string that defines the axes. Default: ('FLOAT', 'XYZ'). |
Additional notes:
MYLAB defines user labels.
The call is: | CALL MYLAB (CSTR, ITICK, CAX) | level 1, 2, 3 |
or: | void mylab (char *cstr, int itick, char *cax); |
CSTR | is a character string containing a label (<= 32 characters). |
ITICK | is the tick number where the label will be plotted (<= 20). Tick numbering starts with 1. |
CAX | is a character string that defines the axes. |
LABTYP defines horizontal or vertical labels.
The call is: | CALL LABTYP (CTYPE, CAX) | level 1, 2, 3 |
or: | void labtyp (char * ctype, char *cax); |
CTYPE | is a character string defining the direction. |
= 'HORI' | defines horizontal labels. |
= 'VERT' | defines vertical labels. |
CAX | is a character string that defines the axes. Default: ('HORI', 'XYZ'). |
LABPOS defines the position of labels.
The call is: | CALL LABPOS (CPOS, CAX) | level 1, 2, 3 |
or: | void labpos (char *cpos, char *cax); |
CPOS | is a character string defining the position. |
= 'TICKS' | means that labels will be plotted at major ticks. |
= 'CENTER' | means that labels will be centred between major ticks. |
= 'SHIFT' | means that the starting and end labels will be shifted. |
CAX | is a character string that defines the axes. Default: ('TICKS', 'XYZ'). |
LABJUS defines the alignment of axis labels.
The call is: | CALL LABJUS (CJUS, CAX) | level 1, 2, 3 |
or: | void labjus (char *cjus, char *cax); |
CJUS | is a character string defining the alignment of labels. |
= 'AUTO' | means that labels are automatically justified. |
= 'LEFT' | means that labels are left-justified. |
= 'RIGHT' | means that labels are right-justified. |
= 'OUTW' | means that labels are left-justified on the left and lower axes of an axis system. On the right and upper axes, labels are right-justified. |
= 'INWA' | means that labels are right-justified on the left and lower axes of an axis system. On the right and upper axes, labels are left-justified. |
CAX | is a character string that defines the axes. Default: ('AUTO', 'XYZ'). |
This routine sets the number of digits after the decimal point displayed in labels.
The call is: | CALL LABDIG (NDIG, CAX) | level 1, 2, 3 |
or: | void labdig (int ndig, char *cax); |
NDIG = -1 | defines integer labels. |
NDIG = 0 | defines integer labels followed by a decimal point. |
NDIG = n | defines the number of digits after the decimal point. The last digit will be rounded up. |
CAX | is a character string that defines the axes. Default: (1, 'XYZ'). |
With the routine INTAX, all axes will be labeled with integers.
The call is: | CALL INTAX | level 1, 2, 3 |
or: | void intax (void); |
This routine sets the distance between labels and ticks.
The call is: | CALL LABDIS (NDIS, CAX) | level 1, 2, 3 |
or: | void labdis (int ndis, char *cax); |
NDIS | is the distance in plot coordinates. |
CAX | is a character string that defines the axes. Default: (24, 'XYZ'). |
The routine LABMOD modifies the appearance of date labels enabled with the keyword 'DATE' in the routine LABELS. Normally, date labels will be plotted in the form dd-mmm-yyyy.
The call is: | CALL LABMOD (CKEY, CVAL, CAX) | level 1, 2, 3 |
or: | void labmod (char *ckey, char *cval, char *cax); |
CKEY | is a character string containing one of the following keywords: |
= 'YEAR' | means that the century field will be modified in date labels. For CKEY = 'YEAR', CVAL can have the values 'NONE', 'SHORT' and 'FULL'. 'NONE' suppresses the year field while 'SHORT' suppresses the century in the year field. The default values is 'FULL'. |
= 'DAYS' | means that the day field will be modified. CVAL can have the values 'NONE', 'SHORT', 'LONG', 'NAME' and 'FULL'. For CVAL = 'NONE', the day field will be suppressed, for CVAL = 'SHORT', the day will be plotted as a number without a leading zero. CVAL = 'LONG' means that the day will be plotted as a number with two digits, CVAL = 'NAME' means that abbreviations of the weekday names will be plotted and CVAL = 'FULL' means that the full weekday names will be displayed. The default value is CVAL = 'LONG'. |
= 'MONTH' | means that the month field will be modified. CVAL can have the values 'NONE', 'SHORT', 'LONG', 'NAME', 'TINY' and 'FULL'. For CVAL = 'NONE', the month field will be suppressed, for CVAL = 'SHORT', the month will be plotted as a number without a leading zero. CVAL = 'LONG' means that the month will be plotted as a number with two digits, CVAL = 'NAME' means that abbreviations of the month names will be plotted, CVAL = 'TINY' means that only the first character of month names will be plotted and CVAL = 'FULL' means that the full month names will be displayed. The default value is CVAL = 'NAME'. |
= 'LANG' | defines the language used for weekdays and month names in date labels. CVAL can have the values 'ENGLISH' and 'GERMAN'. The default value for CVAL is 'ENGLISH'. |
= 'FORM' | defines the order of the date fields. CVAL can have the values 'DMY', 'DYM', 'YDM', 'YMD', 'DYM' and 'MDY'. The default is CVAL = 'DMY'. |
= 'SEPA' | defines a separator character used in date labels. CVAL is a character string containing the separator character. The default is CVAL = '-'. |
= 'CASE' | defines if weekdays and month names are plotted in uppercase characters or in lowercase characters with a leading uppercase character. CVAL can have the values 'UPPER' and 'NONE'. The default value is 'NONE'. |
= 'STEP' | defines a step between labels. CVAL can have the values 'DAYS', 'MONTH', 'DMONTH', 'QUARTER', 'HALF' and 'YEAR'. For CVAL = 'DAYS', the label step specified in the routine GRAF will be used. The default value is CVAL = 'DAYS'. |
CAX | is a character string that defines the axes. |
The routine POLMOD modifies the appearance of angle labels plotted with the routine POLAR.
The call is: | CALL POLMOD (CPOS, CDIR) | level 1, 2, 3 |
or: | void polmod (char *cpos, char *cdir); |
CPOS | is a character string that defines the position of the first label. CPOS can have the values 'RIGHT', 'TOP', 'LEFT' and 'BOTTOM'. |
CDIR | defines the direction of the labels. CDIR can have the
values 'CLOCKWISE' and 'ANTICLOCK'. Default: ('RIGHT', 'ANTICLOCK'). |
With TIMOPT time labels can be plotted in the format 'hh:mm'. The default is 'hhmm'.
The call is: | CALL TIMOPT | level 1, 2, 3 |
or: | void timopt (void); |
The routine RGTLAB right-justifies user labels. By default, user labels are left-justified.
The call is: | CALL RGTLAB | level 1, 2, 3 |
or: | void rgtlab (void); |
NAME defines axis titles.
The call is: | CALL NAME (CSTR, CAX) | level 1, 2, 3 |
or: | void name (char *cstr, char *cax); |
CSTR | is a character string containing the axis title (<= 132 characters). |
CAX | is a character string that defines the axes. Default: (' ', 'XYZ'). |
HNAME defines the character height for axis names.
The call is: | CALL HNAME (NHNAME) | level 1, 2, 3 |
or: | void hname (int nhname); |
NHNAME | is the character height in plot coordinates. Default: NHNAME = 36 |
NAMDIS sets the distance between axis names and labels.
The call is: | CALL NAMDIS (NDIS, CAX) | level 1, 2, 3 |
or: | void namdis (int ndis, char *cax); |
NDIS | is the distance in plot coordinates. |
CAX | is a character string that defines the axes. Default: (30, 'XYZ'). |
The routine NAMJUS defines the alignment of axis titles.
The call is: | CALL NAMJUS (CJUS, CAX) | level 1, 2, 3 |
or: | void namjus (char *cjus, char *cax); |
CJUS | is a character string that can have the values 'CENT', 'LEFT' and 'RIGHT'. |
CAX | is a character string that defines the axes. Default: ('CENT', 'XYZ'). |
The routine RVYNAM is used to plot names on right Y-axes and colour bars at an angle of 90 degrees. By default, they are plotted at an angle of 270 degrees.
The call is: | CALL RVYNAM | level 1, 2, 3 |
or: | void rvynam (void); |
After a call to NOLINE the plotting of axis lines will be suppressed.
The call is: | CALL NOLINE (CAX) | level 1, 2, 3 |
or: | void noline (char *cax); |
CAX | is a character string that defines the axes. |
With a call to AXENDS certain labels can be suppressed.
The call is: | CALL AXENDS (COPT, CAX) | level 1, 2, 3 |
or: | void axends (char *copt, char *cax); |
COPT | is a character string that defines which labels will be suppressed. |
= 'NONE' | means that all labels will be displayed. |
= 'FIRST' | means that only the starting label will be plotted. |
= 'NOFIRST' | means that the starting label will not be plotted. |
= 'LAST' | means that only the ending label will be plotted. |
= 'NOLAST' | means that the ending label will not be plotted. |
= 'ENDS' | means that only the start and end labels will be plotted. |
= 'NOENDS' | means that start and end labels will be suppressed. |
CAX | is a character string that defines the axes. Default: ('NONE', 'XYZ'). |
The routine NOGRAF suppresses the plotting of an axis system.
The call is: | CALL NOGRAF | level 1 |
or: | void nograf (void); |
The routine AX2GRF suppresses the plotting of the upper X- and left Y-axis.
The call is: | CALL AX2GRF | level 1, 2, 3 |
or: | void ax2grf (void); |
SETGRF removes a part of an axis or a complete axis from an axis system.
The call is: | CALL SETGRF (C1, C2, C3, C4) | level 1, 2, 3 |
or: | void setgrf (char *c1, char *c2, char *c3, char *c4); |
Ci | are character strings corresponding to the four axes of an axis system. C1 corresponds to the lower X-axis, C2 to the left Y-axis, C3 to the upper X-axis and C4 to the right Y-axis. The parameters can have the values 'NONE', 'LINE', 'TICKS', 'LABELS' and 'NAME'. With 'NONE', complete axes will be suppressed, with 'LINE', only axis lines will be plotted, with 'TICKS', axis lines and ticks will be plotted, with 'LABELS' axis lines, ticks and labels will be plotted and with 'NAME', all axis elements will be displayed. Default: ('NAME', 'NAME', 'TICKS', 'TICKS'). |
Additional notes:
The routine CLPWIN defines a rectangular clipping area on the page.
The call is: | CALL CLPWIN (NX, NY, NW, NH) | level 1, 2, 3 |
or: | void clpwin (int nx, int ny, int nw, int nh); |
NX, NY | are the plot coordinates of the upper left corner. |
NW, NH | are the width and height of the rectangle in plot coordinates. |
The routine CLPBOR sets the clipping area to the entire page or to the axis system.
The call is: | CALL CLPBOR (COPT) | level 1, 2, 3 |
or: | void clpbor (char *copt); |
COPT | is a character string that can have the values 'PAGE' and 'AXIS'. Default: COPT = 'PAGE'. |
The suppressing of lines outside of the borders of an axis system can be disabled with NOCLIP.
The call is: | CALL NOCLIP | level 1, 2, 3 |
or: | void noclip (void); |
GRACE defines a margin around axis systems where lines will be clipped.
The call is: | CALL GRACE (NGRA) | level 1, 2, 3 |
or: | void grace (int ngra); |
NGRA | is the width of the margin in plot coordinates. If NGRA is negative, lines will be clipped inside the axis system. Default: NGRA = -1 |
FRAME defines the thickness of frames plotted by routines such as GRAF and LEGEND.
The call is: | CALL FRAME (NFRM) | level 1, 2, 3 |
or: | void frame (int nfrm); |
NFRM | is the thickness of the frame in plot coordinates. If NFRM is negative, the frame will be thickened from the inside. If positive, the frame will be thickened towards the outside. Default: NFRM = 1 |
The colour of frames can be defined with the routine FRMCLR.
The call is: | CALL FRMCLR (NCLR) | level 1, 2, 3 |
or: | void frmclr (int nclr); |
NCLR | is a colour value. If NCLR = -1, the current colour is used. Default: NCLR = -1. |
The routine AXSBGD defines a background colour for axis systems.
The call is: | CALL AXSBGD (NCLR) | level 1, 2, 3 |
or: | void axsbdg (int nclr); |
NCLR | is a colour value. If NCLR = -1, the background of an axis system is not filled in GRAF. Default: NCLR = -1 |
AXCLRS selects colours for single parts of axes.
The call is: | CALL AXCLRS (NCLR, COPT, CAX) | level 1, 2, 3 |
or: | void axclrs (int nclr, char *copt, char *cax); |
NCLR | is a colour value. If NCLR = -1, the actual colour is used. |
COPT | is a character string that can have the values 'LINE', 'TICKS', 'LABELS', 'NAME' and 'ALL'. |
CAX | is a character string that defines the axes. Default: (-1, 'ALL', 'XYZ'). |
Additional note:
This subroutine defines up to four lines of text used for axis system titles. The text can be plotted with TITLE after a call to GRAF.
The call is: | CALL TITLIN (CSTR, IZ) | level 1, 2, 3 |
or: | void titlin (char *cstr, int iz); |
CSTR | is a character string (<= 132 characters). |
IZ | is an integer that contains a value between 1 and 4 or -1 and -4. If IZ is negative, the line will be underscored. Default: All lines are filled with blanks. |
The routine TITJUS defines the alignment of title lines.
The call is: | CALL TITJUS (CJUS) | level 1, 2, 3 |
or: | void titjus (char *cjus); |
CJUS | is a character string that can have the values 'CENT', 'LEFT' and 'RIGHT'. Default: CJUS = 'CENT'. |
Title lines are centred above axis systems by default but can be left-justified with a call to LFTTIT. This routine has the same meaning as TITJUS ('LEFT').
The call is: | CALL LFTTIT | level 1, 2, 3 |
or: | void lfttit (void); |
The routine TITPOS defines the position of title lines which can be plotted above or below axis systems.
The call is: | CALL TITPOS (CPOS) | level 1, 2, 3 |
or: | void titpos (char *cpos); |
CPOS | is a character string that can have the values 'ABOVE' and 'BELOW'. Default: CPOS = 'ABOVE'. |
LINESP defines the spacing between title and legend lines.
The call is: | CALL LINESP (XFAC) | level 1, 2, 3 |
or: | void linesp (float xfac); |
XFAC | The space between lines is set to XFAC * character height. Default: XFAC = 1.5 |
HTITLE defines the character height for titles. The character height defined by HEIGHT will be used if HTITLE is not called.
The call is: | CALL HTITLE (NHCHAR) | level 1, 2, 3 |
or: | void htitle (int nhchar); |
NHCHAR | is the character height in plot coordinates. |
The space between titles and axis systems can be enlarged or reduced with VKYTIT. By default, the space is 2 * character height.
The call is: | CALL VKYTIT (NV) | level 1, 2, 3 |
or: | void vkytit (int nv); |
NV | is an integer that determines the spacing between axis systems and titles. If NV is negative, the space will be reduced by NV plot coordinates. If NV is positive, the space will be enlarged by NV plot coordinates. Default: NV = 0 |
COLOR defines the colours used for plotting text and lines.
The call is: | CALL COLOR (CNAME) | level 1, 2, 3 |
or: | void color (char *cname); |
CNAME | is a character string that can have the values 'BLACK', 'RED', 'GREEN', 'BLUE', 'CYAN', 'YELLOW', 'ORANGE', 'MAGENTA', 'WHITE' and 'FORE'. The keyword 'FORE' resets the color to the default value. |
Additional note:
The routine SETCLR sets the foreground colour where the colour can be specified as a colour table entry or as an explicit RGB value.
The call is: | CALL SETCLR (NCOL) | level 1, 2, 3 |
or: | void setclr (int ncol); |
NCOL | is a colour value. Default: NCOL = 255 (White). |
The routine SETRGB defines the foreground colour specified in RGB coordinates.
The call is: | CALL SETRGB (XR, XG, XB) | level 1, 2, 3 |
or: | void setrgb (float xr, float xg, float xb); |
XR, XG, XB | are the RGB coordinates of a colour in the range 0 to 1. If the output device cannot display true colours, SETRGB sets the nearest entry in the colour table that matches the RGB coordinates. |
SETVLT selects a colour table.
The call is: | CALL SETVLT (CVLT) | level 1, 2, 3 |
or: | void setvlt (char *cvlt); |
CVLT | is a character string that defines the colour table. |
= 'SMALL' | defines a small colour table with the 8 colours: 1 = BLACK, 2 = RED, 3 = GREEN, 4 = BLUE, 5 = YELLOW, 6 = ORANGE, 7 = CYAN and 8 = MAGENTA. |
= 'VGA' | defines the 16 standard colours of a VGA graphics card. |
= 'RAIN' | defines 256 colours arranged in a rainbow where 0 means black and 255 means white. |
= 'SPEC' | defines 256 colours arranged in a rainbow where 0 means black and 255 means white. This colour table uses more violet colours than 'RAIN'. |
= 'GREY' | defines 256 grey scale colours where 0 means black and 255 is white. |
= 'RRAIN' | is the reverse colour table of 'RAIN'. |
= 'RSPEC' | is the reverse colour table of 'SPEC'. |
= 'RGREY' | is the reverse colour table of 'GREY'. |
= 'TEMP' | defines a temperature colour table. The default colour table is 'RAIN'. |
The routine MYVLT changes the current colour table.
The call is: | CALL MYVLT (XR, XG, XB, N) | level 0, 1, 2, 3 |
or: | void myvlt (float *xr, float *xg, float *xb, int n); |
XR, XG, XB | are arrays containing RGB coordinates in the range 0 to 1. |
N | is the number of colour entries. |
The routine SETIND allows the user to change the current colour table.
The call is: | CALL SETIND (INDEX, XR, XG, XB) | level 1, 2, 3 |
or: | void setind (int index, float xr, float xg, float xb); |
INDEX | is an index between 0 and 255. |
XR, XG, XB | are the RGB coordinates of a colour in the range 0 to 1. |
The routine VLTFIL saves the current colour table to a file, or loads a colour table from a file.
The call is: | CALL VLTFIL (CFIL, COPT) | level 1, 2, 3 |
or: | void vltfil (char *cfil, char *copt); |
CFIL | is a character string containing a filename. Colour entries are stored in the file as RGB coordinates in the range 0 to 1. |
COPT | is a character string that can have the values 'SAVE' and 'LOAD'. |
The function INTRGB creates an explicit colour value from RGB coordinates.
The call is: | NCLR = INTRGB (XR, XG, XB) | level 1, 2, 3 |
or: | int intrgb (float xr, float xg, float xb); |
XR, XG, XB | are the RGB coordinates of a colour in the range 0 to 1. |
NCLR | is the returned colour value. |
The function INDRGB returns the nearest entry in the current colour table that matches given RGB coordinates.
The call is: | N = INDRGB (XR, XG, XB) | level 1, 2, 3 |
or: | int indrgb (float xr, float xg, float xb); |
XR, XG, XB | are the RGB coordinates of a colour in the range 0 to 1. |
N | is the returned colour index. |
Sometimes, it is easier to specify colours as HSV coordinates where H is the hue, S the saturation and V the value of a colour. The following routines convert coordinates from the HSV to the RGB model and vice versa.
The routine HSVRGB converts HSV coordinates to RGB coordinates.
The call is: | CALL HSVRGB (XH, XS, XV, XR, XG, XB) | level 1, 2, 3 |
or: | void hsvrgb (float xh, float xs, float xv, float *xr, float *xg, float *xb); |
XH, XS, XV | are the hue, saturation and value of a colour. XH must be in the range 0 to 360 degrees while XS and XV can have values between 0 and 1. In the HSV model, colours lie in a spectral order on a six-sided pyramid where red corresponds to the angle 0, green to 120 and blue to 240 degrees. |
XR, XG, XB | are the RGB coordinates in the range 0 to 1 calculated by HSVRGB. |
The routine RGBHSV converts RGB coordinates to HSV coordinates.
The call is: | CALL RGBHSV (XR, XG, XB, XH, XS, XV) | level 1, 2, 3 |
or: | void rgbhsv (float xr, float xg, float xb, float *xh, float *xs, float *xv); |
HEIGHT defines the character height.
The call is: | CALL HEIGHT (NHCHAR) | level 1, 2, 3 |
or: | void height (int nhchar); |
NHCHAR | is the character height in plot coordinates. Default: NHCHAR = 36 |
This routine modifies the direction of text plotted with the routines MESSAG, NUMBER, RLMESS and RLNUMB.
The call is: | CALL ANGLE (NDEG) | level 1, 2, 3 |
or: | void angle (int ndeg); |
NDEG | is an angle measured in degrees and a counter-clockwise direction. Default: NDEG = 0 |
The routine TXTJUS defines the alignment of text plotted with the routines MESSAG and NUMBER.
The call is: | CALL TXTJUS (CJUS) | level 1, 2, 3 |
or: | void txtjus (char *cjus); |
CJUS | is a character string that can have the values 'LEFT', 'RIGHT' and 'CENT'. The starting point of text and numbers will be interpreted as upper left, upper right and upper centre point. Default: CJUS = 'LEFT'. |
FRMESS defines the thickness of frames around text plotted by MESSAG.
The call is: | CALL FRMESS (NFRM) | level 1, 2, 3 |
or: | void frmess (int nfrm); |
NFRM | is the thickness of frames in plot coordinates. If NFRM is negative, frames will be thickened from the inside. If positive, frames will be thickened towards the outside. Default: NFRM = 0 |
NUMFMT modifies the format of numbers plotted by NUMBER and RLNUMB.
The call is: | CALL NUMFMT (COPT) | level 1, 2, 3 |
or: | void numfmt (char *copt); |
COPT | is a character string defining the format. |
= 'FLOAT' | will plot numbers in floating-point format. |
= 'EXP' | will plot numbers in exponential format where fractions range between 1 and 10. |
= 'FEXP' | will plot numbers in the format fEn where f ranges between 1 and 10. |
= 'LOG' | will plot numbers logarithmically with base 10 and the corresponding exponents. The exponents must be passed to NUMBER and RLNUMB. Default: COPT = 'FLOAT'. |
Additional note:
NUMODE alters the appearance of numbers plotted by NUMBER and RLNUMB.
The call is: | CALL NUMODE (CDEC, CGRP, CPOS, CFIX) | level 1, 2, 3 |
or: | void numode (char *cdec, char *cgrp, char *cpos, char *cfix); |
CDEC | is a character string that defines the decimal notation. |
= 'POINT' | defines a point. |
= 'COMMA' | defines a comma. |
CGRP | is a character string that defines the grouping of 3 digits. |
= 'NONE' | means no grouping. |
= 'SPACE' | defines a space as separator. |
= 'POINT' | defines a point as separator. |
= 'COMMA' | defines a comma as separator. |
CPOS | is a character string that defines the sign preceding positive numbers. |
= 'NONE' | means no preceding sign. |
= 'SPACE' | defines a space as a preceding sign. |
= 'PLUS' | defines a plus as a preceding sign. |
CFIX | is a character string specifying character spacing. |
= 'NOEQUAL' | is used for proportional spacing. |
= 'EQUAL' | is used for non-proportional spacing. Default: ('POINT','NONE','NONE','NOEQUAL'). |
CHASPC affects intercharacter spacing.
The call is: | CALL CHASPC (XSPC) | level 1, 2, 3 |
or: | void chaspc (float xspc); |
XSPC | is a real number that contains a multiplier. If XSPC < 0, the intercharacter spacing will be reduced by XSPC * NH plot coordinates where NH is the current character height. If XSPC > 0, the spacing will be enlarged by XSPC * NH plot coordinates. Default: XSPC = 0. |
CHAWTH affects the width of characters.
The call is: | CALL CHAWTH (XWTH) | level 1, 2, 3 |
or: | void chawth (float xwth); |
XWTH | is a real number between 0 and 2. If XWTH < 1, the character width will be reduced. If XWTH > 1, the character width will be enlarged. Default: XWTH = 1. |
CHAANG defines an inclination angle for characters.
The call is: | CALL CHAANG (ANGLE) | level 1, 2, 3 |
or: | void chaang (float angle); |
ANGLE | is the inclination angle between characters and the vertical direction in degrees (-60 <= ANGLE <= 60). Default: ANGLE = 0. |
All fonts in DISLIN except for the default font are proportional. After a call to FIXSPC the characters of a proportional font will also be plotted with a constant character width.
The call is: | CALL FIXSPC (XFAC) | level 1, 2, 3 |
or: | void fixspc (float xfac); |
XFAC | is a real number containing a scaling factor. Characters will be centred in a box of width XFAC * XMAX where XMAX is the largest character width of the current font. |
The calls are:
PSFONT defines a PostScript font.
The call is: | CALL PSFONT (CFONT) | level 1, 2, 3 |
or: | void psfont (char *cfont); |
CFONT | is a character string containing the font. Standard font names in PostScript are: |
Times-Roman Courier Times-Bold Courier-Bold Times-Italic Courier-Oblique Times-BoldItalic Courier-BoldOblique Helvetica AvantGarde-Book Helvetica-Bold AvantGarde-Demi Helvetica-Oblique AvantGarde-BookOblique Helvetica-BoldOblique AvantGarde-DemiOblique Helvetica-Narrow Bookman-Light Helvetica-Narrow-Bold Bookman-LightItalic Helvetica-Narrow-Oblique Bookman-Demi Helvetica-Narrow-BoldOblique Bookman-DemiItalic NewCenturySchlbk-Roman Palatino-Roman NewCenturySchlbk-Italic Palatino-Italic NewCenturySchlbk-Bold Palatino-Bold NewCenturySchlbk-BoldItalic Palatino-BoldItalic ZapfChancery-MediumItalic Symbol ZapfDingbatsAdditional notes:
WINFNT defines a TrueType font for WMF files and screen output on Windows displays.
The call is: | CALL WINFNT (CFONT) | level 1, 2, 3 |
or: | void winfnt (char *cfont); |
CFONT | is a character string containing the font. The following fonts can normally be used on Windows: |
Courier New Courier New Bold Courier New Italic Courier New Bold Italic Times New Roman Times New Roman Bold Times New Roman Italic Times New Roman Bold Italic Arial Arial Bold Arial Italic Arial Bold ItalicX 1 1 F N T
X11FNT defines an X11 font for screen output on X11 displays.
The call is: | CALL X11FNT (CFONT, COPT) | level 1, 2, 3 |
or: | void x11fnt (char *cfont, char *copt); |
CFONT | is a character string containing the first part of an X11 font. |
COPT | is a character string containing the last part of an X11 font. IF COPT = 'STANDARD', the value '-*-*-*-*-iso8859-1' is used for the last part of an X11 font. |
Additional note:
Here are some examples for the contents of CFONT:
-Adobe-Times-Medium-R-Normal- -Adobe-Times-Bold-R-Normal- -Adobe-Times-Bold-I-Normal- -Adobe-Helvetica-Bold-R-Normal- -Adobe-Courier-Medium-R-Normal-B M P F N T
DISLIN contains some bitmap fonts that can be set with the routine BMPFNT. Bitmap fonts are allowed for screen output and for a bitmap file format. They can be used to increase the quality of directly created raster formats such as PNG and TIFF.
The call is: | CALL BMPFNT (CFONT) | level 1, 2, 3 |
or: | void bmpfnt (char *cfont); |
CFONT | is a character string that can have the values 'COMPLEX', 'SIMPLEX' and 'HELVE'. |
The routine HWFONT sets a standard hardware font if hardware fonts are supported by the current file format. For example, if the file format is PostScript, the font 'Times-Roman' is used, if the file format is 'CONS' or 'XWIN', 'Times New Roman' is used for Windows 95/NT and '-*-Times-Bold-R-Normal-' is used for X11. If no hardware fonts are supported, COMPLX is used.
The call is: | CALL HWFONT | level 1, 2, 3 |
or: | void hwfont (void); |
The routine CHACOD defines the coding of characters.
The call is: | CALL CHACOD (COPT) | level 1, 2, 3 |
or: | void chacod (char *copt); |
COPT | is a character string that can have the values 'STANDARD','ISO1' and 'ISO2'. If COPT = 'ISO1', characters in strings will be interpreted as ISO-Latin-1 coded, and if COPT = 'ISO2', characters will be interpreted as ISO-Latin-2 coded. The DISLIN vector font 'COMPLX' and fonts defined by BMPFNT contain ISO-Latin-2 characters. Default: COPT = 'STANDARD'. |
BASALF defines the base alphabet.
The call is: | CALL BASALF (CALPH) | level 1, 2, 3 |
or: | void basalf (char *calph); |
CALPH | is a character string that can have the values 'STANDARD', 'ITALIC', 'GREEK', 'SCRIPT', 'RUSSIAN' and 'MATHEMATIC'. These alphabets can be used with all fonts. Default: 'STANDARD'. |
SMXALF defines shift characters to shift between the base and an alternate alphabet.
The call is: | CALL SMXALF (CALPH, C1, C2, N) | level 1, 2, 3 |
or: | void smxalf (char *calph, char *c1, char *c2, int n); |
CALPH | is a character string containing an alphabet. In addition to the names in BASALF, CALPH can have the value 'INSTRUCTION'. |
C1 | is a character that shifts to the alternate alphabet. |
C2 | is a character that shifts back to the base alphabet. C1 and C2 may be identical. After the last plotted character of a character string, DISLIN automatically shifts back to the base alphabet. |
N | is an integer between 1 and 6. Up to 6 alternate alphabets can be defined. |
The routine PSMODE enables Greek and Italic PostScript characters in Postscript fonts. By default, DISLIN vector characters are used for Greek and Italic characters in PostScript fonts.
The call is: | CALL PSMODE (COPT) | level 1, 2, 3 |
or: | void psmode (char *copt); |
COPT | is a character string that can have the values 'NONE', 'GREEK', 'ITALIC' and 'BOTH'. Default: 'NONE'. |
European characters can be plotted by using their character codes in text strings where different character codings are available (see CHACOD), or by defining a shift character that converts the following character into a European character. The routine EUSHFT defines shift characters for European characters.
The call is: | CALL EUSHFT (CNAT, CSHIFT) | level 1, 2, 3 |
or: | void eushft (char *cnat, char *cshift); |
CNAT | is a character string that can have the values 'GERMAN', 'FRENCH', 'SPANISH', 'DANISH', 'ACUTE', 'GRAVE' and 'CIRCUM'. |
CSHIFT | is a shift character. For example, with CNAT = 'GERMAN', the characters A, O, U, a, o, u and s placed directly after CSHIFT will be plotted as Ä, Ö, Ü, ä, ö, ü and ß. |
Additional notes:
Figure 6.3: EUSHFT Character Set
[ | is used for exponents. The character height is reduced by the scaling factor FEXP and the pen is moved up FBAS * NH plot coordinates where NH is the current character height. |
] | is used for indices. The pen is moved down FBAS * NH plot coordinates and the character height is reduced by the scaling factor FEXP. |
$ | is used to move the pen back to the base-line. This will automatically be done at the end of a character string. |
FBAS and FEXP have the default values 0.6 and 0.8, respectively, these values can be changed with the routines SETBAS and SETEXP.
This routine instructs DISLIN to search for control characters in character strings.
The call is: | CALL MIXALF | level 1, 2, 3 |
or: | void mixalf (void); |
SETBAS defines the position of indices and exponents. This routine also affects logarithmic axis labels.
The call is: | CALL SETBAS (FBAS) | level 1, 2, 3 |
or: | void setbas (float fbas); |
FBAS | is a real number used as a scaling factor. The pen will be moved up or down by FBAS * NH plot coordinates to plot exponents or indices. NH is the current character height. Default: FBAS = 0.6. |
SETEXP sets the character height of indices and exponents.
The call is: | CALL SETEXP (FEXP) | level 1, 2, 3 |
or: | void setexp (float fexp); |
FEXP | is a real number used as a scaling factor. The character height of indices and exponents is set to FEXP * NH where NH is the current character height. Default: FEXP = 0.8 |
NEWMIX defines an alternate set of control characters for plotting indices and exponents. The default characters '[', ']' and '$' are replaced by '^', '_' and '%'.
The call is: | CALL NEWMIX | level 1, 2, 3 |
or: | void newmix (void); |
SETMIX defines global control characters for plotting indices and exponents.
The call is: | CALL SETMIX (C, CMIX) | level 1, 2, 3 |
or: | void setmix (char *c, char *cmix); |
C | is a new control character. |
CMIX | is a character string that defines the function of the control character. CMIX can have the values 'EXP', 'IND', 'RES' and 'LEG' for exponents, indices, resetting the base-line, and for multiple text lines in legends, respectively. |
Additional note:
The instruction alphabet can be used in the same way as other alphabets in DISLIN. Shift characters must be defined with the routine SMXALF to switch between the base and the instruction alphabet.
The commands of the instruction alphabet consist of a single character and an optional parameter. If the parameter is omitted, DISLIN will use default values. A parameter can be a real number, an integer or the character 'X' which resets the parameter back to the entry value at the beginning of the character string.
Commands of the instruction alphabet can only change plot parameters temporarily within a character string. At the end of a character string, all parameters are reset to their entry values.
The following table summarizes all instruction commands. The character r means a real parameter and i an integer. The base-line of character strings is placed directly below them. Commands can be given in uppercase or lowercase letters. Real parameters can be specified without decimal points while integer parameters cannot have decimal points. Several commands can follow one another. Blanks between commands will be ignored.
------------------------------------------------------------ | Cmd. Par. Default Description | ------------------------------------------------------------ | A real 1. moves the pen horizontally by r * NH | | plot coordinates where NH is the | | current character height. If r < 0, | | the pen will be moved backwards. | | | | C integer 1 moves the pen horizontally by i cha- | | racter spaces. If i < 0, the pen | | will be moved backwards. | | | | D real 1. moves the pen down from the base- | | line by r * NH plot coordinates. If | | r > 0, NH is the entry character | | height. If r < 0, NH is the current | | character height. | | | | E moves the pen up by 0.75 * character | | height and reduces the character | | height by the scaling factor 0.6 | | (for exponents). | | | | F integer 1 moves the pen horizontally by i spa- | | ces. If i is negative, the pen is | | moved backwards. | | | | G integer 1 moves the pen horizontally to the | | tab position with the index i, where | | 1 <= i <= 20. | | | | H real 0.6 sets the character height to r * NH. | | If r > 0, NH is the entry character | | height. If r < 0, NH is the current | | character height. | | | | I moves the pen down by 0.35 * charac- | | ter height and multiplies the cha- | | racter height by 0.6 (for indices). | | | | J integer 1 underscores twice from the tab posi- | | tion i to the current pen position. | | | | K real 0.8 is used to plot characters with con- | | stant widths. Characters will be | | centred in a box with the width | | r * W where W is the largest charac- | | ter length in the current font. The | | global routine is FIXSPC. | | | | L integer 1 underscores from the tab position i | | to the current pen position. | | | | M integer 1 defines the base alphabet. | | (1 = STAND., 2 = GREEK, 3 = MATH., | | 4 = ITAL., 5 = SCRIPT, 6 = RUSSIAN). | ------------------------------------------------------------ ------------------------------------------------------------ | Cmd. Par. Default Description | ------------------------------------------------------------ | N integer 1 sets a colour i, where 0 <= i <= | | 255. The global routine is SETCLR. | | | | O real 0. moves the base-line vertically by | | r * character height. If r < 0 the | | base-line is moved down. | | | | P integer 1 defines a horizontal tab position | | with the index i at the current pen | | position, where 1 <= i <= 20. | | All tab positions are initialized to | | the beginning of the string. | | | | R resets the character height and the | | base-line to their entry values. | | | | S integer 0 plots a symbol with the number i, | | where 0 <= i <= 21. | | | | T integer 0 moves the pen horizontally from the | | beginning of the string by i plot | | coordinates. | | | | U real 1. moves the pen up from the base-line | | by r * NH plot coordinates. If r > | | 0, NH is the entry character height. | | If r < 0, NH is the current charac- | | ter height. | | | | V integer 1 plots a horizontal line from the tab | | position i to the current pen posi- | | tion. The line is moved up from the | | base-line by 0.5 * character height | | plot coordinates. | | | | W real 1. affects the width of characters. The | | global routine is CHAWTH. | | | | Y real 0. affects the character spacing. The | | global routine is CHASPC. | | | | Z real 0. defines an inclination angle for | | characters, where -60 <= r <= 60. | | The global routine is CHAANG. | ------------------------------------------------------------For the following examples, the characters '{' and '}' are defined with
CALL SMXALF ('INST', '{', '}', 1)
to switch between the instruction and the base alphabet.
TeX instructions can be enabled in DISLIN with the statement CALL TEXMOD ('ON'). If TeX mode is enabled, mixed alphabets defined with SMXALF and the control characters for indices and exponents described in paragraph 6.5 will be ignored.
Mathematical formulas in TeX mode are produced in DISLIN by some special descriptive text. This means that DISLIN must be informed that the following text is to be interpreted as a mathematical formula. The character $ in a text switches from text to math mode, and from math to text mode. Therefore, mathematical formulas must be enclosed in a pair of dollar signs.
Numbers that appear within formulas are called constants, whereas simple variables are represented by single letters. The universal practice in mathematical typesetting is to put constants in Roman typeface and variables in italics. DISLIN uses this rule by default in math mode. The rule can be modified with the routine TEXOPT. Blanks are totally ignored in math mode and spaces are included automatically by DISLIN between constants, variables and operators.
The characters $, {, } and \ have a special meaning in TeX mode and therefore cannot act as printable characters. To include them in normal text, the commands \$, \{, \} and \\ must be used. Additional, the characters _ and ^ have a special meaning in math mode and can be handled in the same way.
The routine TEXMOD can be used to enable TeX mode in DISLIN. In TeX mode, all character strings passed to DISLIN routines can contain TeX instructions for plotting mathematical formulas.
The call is: | CALL TEXMOD (CMODE) | level 1, 2, 3 |
or: | void texmod (char *cmode); |
CMODE | is a character string that can have the values 'ON' and 'OFF'. CMODE = 'ON' enables TeX mode and CMODE = 'OFF' disables TeX mode. Default: CMODE = 'OFF'. |
The routine TEXOPT sets some TeX options.
The call is: | CALL TEXOPT (COPT, CTYPE) | level 1, 2, 3 |
or: | void texopt (char *copt, char *ctype); |
COPT | is a character string that can have the values 'ON' and 'OFF'. |
CTYPE | is a character string that can contain the keywords
'LIMITS' and 'ITALIC'. 'LIMITS' means that the limits
for sums and integrals will be placed above and below
the sum and integral signs instead of following them.
'ITALIC' means that for math mode variables will be put
in italics. Default: ('ON', 'LIMITS'), ('ON', 'ITALIC'). |
When exponents and indices occur together, their order is unimportant. If the exponent or index contains more than one character, the group of characters must be inclosed in braces { }.
Multiple raisings and lowerings are generated by applying ^ and _ to the exponents and indices.
Note: The commands ^ and _ are only allowed in math mode.
\alpha \theta o \chi \beta \iota \pi \psi \gamma \kappa \rho \omega \delta \lambda \sigma \epsilon \mu \tau \zeta \nu \upsilon \eta \xi \phi \Gamma \Lambda \Sigma \Psi \Delta \Xi \Upsilon \Omega \Theta \Pi \Phi
\pm \cdot \cup \odot \mp \ast \vee \oplus \times \star \wedge \ominus \div \cap \setminus \le, \leq \ge, \geq \neq \sim \subset \supset \cong \mid \subseteq \supseteq \equiv \notin \in \ni \parallel \not= \leftarrow \rightarrow \Leftrightarrow \downarrow \Leftarrow \Rightarrow \uparrow \emptyset \surd \forall \backlslash \nabla \partial \exists \infty \perp
\arccos \arcsin \arctan \arg \cos \cosh \cot \coth \csc \dec \dim \exp \hom \ln \log \sec \sin \sinh \tan \tanh
\, small space = 3/18 of the current character size \: medium space = 4/18 of the current character size \; large space = 5/18 of the current character size \! negative space = -3/18 of the current character size Larger amounts of horizontal spacing can be added with the commands: \quad extra space = 1/1 of the current character size \qquad extra space = 2/1 of the current character size
CHNCRV defines attributes that will be automatically changed by CURVE after a certain number of calls to the routine CURVE.
The call is: | CALL CHNCRV (CATT) | level 1, 2, 3 |
or: | void chncrv (char *catt); |
CATT = 'NONE' | means that CURVE changes no attributes. |
= 'COLOR' | means that colours will be changed. |
= 'LINE' | means that line styles will be changed. |
= 'BOTH' | means that colours and line styles will be changed. Default: CATT = 'NONE'. |
Additional notes:
The following three routines are useful when automatic attribute setting is selected and the routine CURVE is called several times to plot a single curve.
INCCRV defines the number of calls after which CURVE will automatically change attributes.
The call is: | CALL INCCRV (NCRV) | level 1, 2, 3 |
or: | void inccrv (int ncrv); |
NCRV | is the number of curves that will be plotted with identical attributes. Default: NCRV = 1 |
CHNATT is an alternative routine to INCCRV. It is useful when the number of curves plotted with identical attributes varies. CHNATT defines new attributes that will be used by CURVE during the next call.
The call is: | CALL CHNATT | level 1, 2, 3 |
or: | void chnatt (void); |
Additional notes:
In general, curve attributes will be repeated after 8 changes. With the routine RESATT, the attributes can be reset earlier.
The call is: | CALL RESATT | level 1, 2, 3 |
or: | void resatt (void); |
INCMRK selects line or symbol mode for CURVE.
The call is: | CALL INCMRK (NMRK) | level 1, 2, 3 |
or: | void incmrk (int nmrk); |
NMRK = - n | means that CURVE plots only symbols. Every n-th point will be marked by a symbol. |
NMRK = 0 | means that CURVE connects points with lines. |
NMRK = n | means that CURVE plots lines and marks every n-th point with a symbol. Default: NMRK = 0 |
The symbols used to plot points can be selected with the routine MARKER. The symbol number will be incremented by 1 after a certain number of calls to CURVE defined by INCCRV.
The call is: | CALL MARKER (NSYM) | level 1, 2, 3 |
or: | void marker (int nsym); |
NSYM | is the symbol number between 0 and 21. The symbols are shown in appendix B. Default: NSYM = 0 |
HSYMBL defines the size of symbols.
The call is: | CALL HSYMBL (NHSYM) | level 1, 2, 3 |
or: | void hsymbl (char *nhsym); |
NHSYM | is the size of symbols in plot coordinates. Default: NHSYM = 35 |
MYSYMB sets an user-defined symbol.
The call is: | CALL MYSYMB (XRAY, YRAY, N, ISYM, IFLAG) | level 1, 2, 3 |
or: | void mysymb (float *xray, float *yray, int n, int isym, int iflag); |
XRAY, YRAY | are the X- and Y-coordinates of the symbol in the range -1 and 1. |
N | is the number of coordinates in XRAY and YRAY. |
ISYM | is a non negative number that will be used as symbol number. |
IFLAG | is an Integer that can have the values 0 and 1. If IFLAG = 1, the symbol will be filled. |
Additional note:
THKCRV defines the thickness of curves.
The call is: | CALL THKCRV (NTHK) | level 1, 2, 3 |
or: | void thkcrv (int nthk); |
NTHK | is the thickness of curves in plot coordinates. Default: NTHK = 1 |
GAPCRV defines a data gap used in the routine CURVE. If the distance between two neightbouring X coordinates is greater than the gap value, CURVE will not connect these data points.
The call is: | CALL GAPCRV (XGAP) | level 1, 2, 3 |
or: | void gapcrv (float xgap); |
XGAP | is the gap value. |
POLCRV defines an interpolation method used by CURVE to connect points.
The call is: | CALL POLCRV (CPOL) | level 1, 2, 3 |
or: | void polcrv (char *cpol); |
CPOL | is a character string containing the interpolation method. |
= 'LINEAR' | defines linear interpolation. |
= 'STEP' | defines step interpolation. |
= 'STAIRS' | defines step interpolation. |
= 'BARS' | defines bar interpolation. |
= 'FBARS' | defines filled bar interpolation. |
= 'STEM' | defines stem interpolation. |
= 'SPLINE' | defines spline interpolation. |
= 'PSPLINE' | defines parametric spline interpolation. Default: CPOL = 'LINEAR'. |
Additional notes:
SPLMOD defines the order of polynomials and the number of interpolated points used for the interpolation methods 'SPLINE' and 'PSPLINE'.
The call is: | CALL SPLMOD (NGRAD, NPTS) | level 1, 2, 3 |
or: | void splmod (int ngrad, int npts); |
NGRAD | is the order of the spline polynomials (2 - 10). It affects the number of points accepted by CURVE which is determined by the formula (2 * NGRAD + 1) * N <= 1000. For example, with a cubic spline, up to 142 points can be passed to CURVE. |
NPTS | is the number of points that will be interpolated in the range XRAY(1) to XRAY(N). Default: (3, 200). |
BARWTH sets the width of bars plotted by CURVE.
The call is: | CALL BARWTH (XWTH) | level 1, 2, 3 |
or: | void barwth (float xwth); |
XWTH | defines the bar width. If positive, the absolute value of XWTH * (XRAY(1)-XRAY(2)) is used. If negative, the absolute value of XWTH is used where XWTH is specified in plot coordinates. Default: XWTH = 0.75 |
Additional note:
The routine NOCHEK can be used to suppress the listing of points that lie outside of the axis scaling.
The call is: | CALL NOCHEK | level 1, 2, 3 |
or: | void nochek (void); |
The routines SOLID, DOT, DASH, CHNDOT, DASHM, DOTL and DASHL define different line styles. They are called without parameters. The routine LINTYP (NTYP) can also be used to set line styles where NTYP is an integer between 0 and 7 and corresponds to the line styles above. The routine MYLINE sets user-defined line styles.
MYLINE defines a global line style.
The call is: | CALL MYLINE (NRAY, N) | level 1, 2, 3 |
or: | void myline (int *nray, int n); |
NRAY | is an array of positive integers characterizing the line style. Beginning with pen-down, a pen-dow and pen-up will be done alternately according to the specified lengths in NRAY. The lengths must be given in plot coordinates. |
N | is the number of elements in NRAY. |
Examples: | The values of NRAY for the predefined line styles are given below: |
SOLID : NRAY = {1} DOT : NRAY = {1, 10} DASH : NRAY = {10, 10} CHNDSH: NRAY = {30, 15, 10, 15} CHNDOT: NRAY = {1, 15, 15, 15} DASHM : NRAY = {20, 15} DOTL : NRAY = {1, 20} DASHL : NRAY = {30, 20}L I N W I D
The routine LINWID sets the line width.
The call is: | CALL LINWID (NWIDTH) | level 1, 2, 3 |
or: | void linwid (int nwidth); |
NWIDTH | is the line width in plot coordinates. Default: NWIDTH = 1 |
Additional note:
The routine LNCAP sets the current line cap parameter.
The call is: | CALL LNCAP (CAP) | level 1, 2, 3 |
or: | void lncap (char *cap); |
CAP | is a character string defining the line cap. |
= 'ROUND' | defines rounded caps. |
= 'CUT' | defines square caps. |
= 'LONG' | defines square caps where stroke ends will be continued equal to half the line width. Default: CAP = 'LONG'. |
The routine LNJOIN sets the current line join parameter.
The call is: | CALL LNJOIN (CJOIN) | level 1, 2, 3 |
or: | void lnjoin (char *cjoin); |
CJOIN | is a character string containing the the line join. |
= 'SHARP' | defines sharp corners between path segments. |
= 'TRUNC' | defines truncated corners between path segments. Default: CJOIN = 'TRUNC'. |
The routine LNMLT sets the current miter limit parameter. This routine can be useful if the line join is set to 'SHARP'.
The call is: | CALL LNMLT (XFC) | level 1, 2, 3 |
or: | void lnmlt (float xfc); |
XFC | is a floatingpoint number where XFC * line width will be used as the miter limit. The miter length is the distance between the inner and outside edge of a path corner. Default: XFC = 2. |
SHDPAT selects shading patterns used by routines such as SHDCRV and AREAF.
The call is: | CALL SHDPAT (IPAT) | level 1, 2, 3 |
or: | void shdpat (long ipat); |
IPAT | is an integer between 0 and 17. The predefined patterns are shown in appendix B. |
MYPAT defines a global shading pattern.
The call is: | CALL MYPAT (IANGLE, ITYPE, IDENS, ICROSS) | level 1, 2, 3 |
or: | void mypat (int iangle, int itype, int idens, int icross); |
IANGLE | is the angle of shading lines (0 - 179). |
ITYPE | defines the type of shading lines: |
= 0 | no shading lines. |
= 1 | equidistant lines. |
= 2 | double shading lines. |
= 3 | triple shading lines. |
= 4 | thick shading lines. |
= 5 | dotted lines. |
= 6 | dashed lines. |
= 7 | dashed-dotted lines. |
IDENS | defines the distance between shading lines (0: small distance, 9: big distance). |
ICROSS | indicates whether shading lines are hatched (0: not hatched, 1: hatched). |
Examples: | The following calls to MYPAT show the predefined shading patterns used by SHDPAT: |
IPAT = 0: CALL MYPAT ( 0, 0, 0, 0) IPAT = 1: CALL MYPAT ( 45, 1, 5, 0) IPAT = 2: CALL MYPAT (150, 4, 5, 0) IPAT = 3: CALL MYPAT (135, 1, 5, 0) IPAT = 4: CALL MYPAT ( 45, 4, 5, 0) IPAT = 5: CALL MYPAT ( 45, 1, 5, 1) IPAT = 6: CALL MYPAT (135, 2, 1, 0) IPAT = 7: CALL MYPAT ( 45, 4, 5, 1) IPAT = 8: CALL MYPAT ( 30, 1, 4, 0) IPAT = 9: CALL MYPAT ( 45, 2, 1, 1) IPAT = 10: CALL MYPAT ( 0, 1, 5, 1) IPAT = 11: CALL MYPAT ( 45, 3, 1, 0) IPAT = 12: CALL MYPAT ( 70, 4, 7, 0) IPAT = 13: CALL MYPAT ( 45, 3, 1, 1) IPAT = 14: CALL MYPAT ( 0, 4, 5, 1) IPAT = 15: CALL MYPAT ( 45, 2, 1, 0) IPAT = 16: CALL MYPAT ( 0, 1, 0, 0) IPAT = 17: CALL MYPAT ( 0, 5, 5, 0)N O A R L N
With the routine NOARLN the outlines of shaded regions can be suppressed.
The call is: | CALL NOARLN | level 1, 2, 3 |
or: | void noarln (void); |
The cycles are:
Line styles: | SOLID, DOT, DASH, CHNDSH, CHNDOT, DASHM, DOTL and DASHL. |
Colours: | WHITE/BLACK, RED, GREEN, YELLOW, BLUE, ORANGE, CYAN and MAGENTA. |
Shading: | Pattern numbers from 0 to 17. |
The following subroutines allow the redefining of cycles.
LINCYC changes the line style cycle.
The call is: | CALL LINCYC (INDEX, ITYP) | level 1, 2, 3 |
or: | void lincyc (int index, int ityp); |
INDEX | is an index between 1 and 30. |
ITYP | is an integer between 0 and 7 containing the line style (0 = SOLID, 1 = DOT, 2 = DASH, 3 = CHNDSH, 4 = CHNDOT, 5 = DASHM, 6 = DOTL, 7 = DASHL). |
CLRCYC changes the colour cycle.
The call is: | CALL CLRCYC (INDEX, ICLR) | level 1, 2, 3 |
or: | void clrcyc (int index, int iclr); |
INDEX | is an index between 1 and 30. |
ICLR | is a colour value (see SETCLR). |
PATCYC changes the shading pattern cycle.
The call is: | CALL PATCYC (INDEX, IPAT) | level 1, 2, 3 |
or: | void patcyc (int index, long ipat); |
INDEX | is an index between 1 and 30. |
IPAT | is a pattern number between 0 and 17 or is determined by the formula IANGLE * 1000 + ITYPE * 100 + IDENS * 10 + ICROSS with the parameters described in MYPAT. |
TRFSHF affects the shifting of plot vectors.
The call is: | CALL TRFSHF (NXSHFT, NYSHFT) | level 1, 2, 3 |
or: | void trfshf (int nxshft, int nyshft); |
NXSHFT, NYSHFT | are plot coordinates that define the magnitude of shifting in the X- and Y-direction. |
TRFSCL affects the scaling of plot vectors.
The call is: | CALL TRFSCL (XSCL, YSCL) | level 1, 2, 3 |
or: | void trfscl (float xscl, float yscl); |
XSCL, YSCL | are scaling factors for the X- and Y-direction. |
TRFROT affects the rotation of plot vectors around a point.
The call is: | CALL TRFROT (XANG, NX, NY) | level 1, 2, 3 |
or: | void trfrot (float xang, int nx, int ny); |
XANG | is the rotation angle measured in degrees in a counter-clockwise direction. |
NX, NY | are the plot coordinates of the rotation point. |
TRFRES resets base transformations.
The call is: | CALL TRFRES | level 1, 2, 3 |
or: | void trfres (void); |
SHIELD selects shielded regions which are set automatically by DISLIN.
The call is: | CALL SHIELD (CAREA, CMODE) | level 1, 2, 3 |
or: | void shield (char *carea, char *cmode); |
CAREA | is a character string defining the regions: |
= 'MESSAG' | is used for text and numbers plotted by MESSAG and NUMBER. |
= 'SYMBOL' | will shield symbols. |
= 'BARS' | will shield bars plotted by BARS. |
= 'PIE' | will shield pie segments plotted by PIEGRF. |
= 'LEGEND' | will protect legends. All legend attributes should be set before calling CURVE because the shielded region of a legend is defined by CURVE. If there is no legend position defined with LEGPOS, CURVE assumes that the legend lies in the upper right corner of the axis system. |
CMODE | is a character string defining a status: |
= 'ON' | means that the regions defined above will be written to the shielding buffer and are protected. |
= 'OFF' | means that regions will not be written to the shielding buffer. Regions that are still stored in the buffer will be shielded. |
= 'DELETE' | removes regions from the shielding buffer. |
= 'RESET' | is a combination of 'OFF' and 'DELETE'. Regions are removed from and will not be written to the shielding buffer. To save computing time, this command should always be used when shielding is no longer needed. |
= 'NOVIS' | The shielding of regions held in the shielding buffer is disabled. This is not valid for regions newly written to the buffer. |
= 'VIS' | Disabled regions will be protected. This is the default value for regions newly written to the buffer. |
The following routines set user-defined regions:
The calls are:
CALL SHLREC (NX, NY, NW, NH) for rectangles CALL SHLRCT (NX, NY, NW, NH, THETA) for rotated rectangles CALL SHLCIR (NX, NY, NR) for circles CALL SHLELL (NX, NY, NA, NB, THETA) for rotated ellipses CALL SHLPIE (NX, NY, NR, ALPHA, BETA) for pie segments CALL SHLPOL (NXRAY, NYRAY, N) for polygons.
NX, NY | are plot coordinates of the upper left corner or the centre point. |
NW, NH | are the width and height of rectangles. |
NR, NA, NB | are radii in plot coordinates. |
THETA | is a rotation angle measured in degrees in a counter-clockwise direction. |
ALPHA, BETA | are starting and ending angles for pie segments measured in degrees in a counter-clockwise direction. |
NXRAY, NYRAY | are arrays of the dimension N containing the corner points of a polygon. |
The index of shielded regions in the buffer can be requested with SHLIND. It returns the index of the region last written to the buffer.
The call is: | CALL SHLIND (ID) | level 1, 2, 3 |
or: | int shlind (void); |
ID | is the returned index. |
SHLDEL removes entries from the shielding buffer.
The call is: | CALL SHLDEL (ID) | level 1, 2, 3 |
or: | void shldel (int id); |
ID | is the index of a shielded region. If ID is 0, all regions defined by the user will be deleted. |
SHLRES deletes regions last written to the shielding buffer.
The call is: | CALL SHLRES (N) | level 1, 2, 3 |
or: | void shlres (int n); |
N | is the number of regions to delete. |
SHLVIS disables or enables shielded regions. Disabled regions are no longer protected but are still held in the shielding buffer.
The call is: | CALL SHLVIS (ID, CMODE) | level 1, 2, 3 |
or: | void shlvis (int id, char *cmode); |
ID | is the index of a shielded region. If ID is 0, all entries are disabled or enabled. |
CMODE = 'ON' | enables shielded regions. This is the default value for regions newly written to the buffer. |
CMODE = 'OFF' | disables shielded regions. |
Additional notes: