Dec 082017
Turbo C source code that will take an array and plot it on a labeled axes. | |||
---|---|---|---|
File Name | File Size | Zip Size | Zip Type |
PLOT.C | 33161 | 5643 | deflated |
PLOT.DOC | 7441 | 2043 | deflated |
Download File TCPLOT.ZIP Here
Contents of the PLOT.DOC file
Turbo C Plotting Package
Michael R. Greason
7 June 1989
Turbo C comes with a rich set of plotting functions; however,
these are all geared toward direct screen manipulation, with the
coordinates supplied being the actual screen coordinates. A package
capable of taking an array and plotting it on labeled axes is very
useful and is described here.
There are many functions involved in this package. Nearly all
the functions used by the user are declared VOID. These user functions
will be described below.
User Functions
Several of the functions described below require a parameter
describing the variable type of the data passed to the function. This
parameter will be called the VTYPE, is of type INT, and is defined as
follows:
0 -- Short INT
1 -- INT
2 -- Long INT
3 -- Float
4 -- Double
gr_closeplot
This function is used to terminate a plotting session (not an
individual plot).
Parameters:None.
Returned:None.
gr_clrscn
Wipes the screen of everything on it.
Parameters:None.
Returned:None.
gr_openplot
This function must be the first called in a plotting session.
It initializes the status variables (variables the user should leave
alone) and the device.
Parameters:None.
Returned:INT An error flag is returned. A 0 indicates
success while a 1 indicates an initialization
failure.
gr_oplot
Overplots two arrays on an already defined set of axes.
Parameters:N INT The number of points to plot.
*X VOID A pointer to the array of x coordinates
to plot.
*Y VOID A pointer to the array of y coordinates
to plot.
VTYPE See above.
Returned:None.
gr_oplot1
Overplots a single array on an already defined set of axes. The
abcissa is assumed to be the indices of the array.
Parameters:N INT The number of points to plot.
*Y VOID A pointer to the array of y coordinates
to plot.
VTYPE See above.
Returned:None.
gr_plot
Plots two arrays defining a set of axes.
Parameters:N INT The number of points to plot.
*X VOID A pointer to the array of x coordinates
to plot.
*Y VOID A pointer to the array of y coordinates
to plot.
VTYPE See above.
Returned:None.
gr_plot1
Plots a single array, defining a set of axes. The abcissa is
assumed to be the indices of the array.
Parameters:N INT The number of points to plot.
*Y VOID A pointer to the array of y coordinates
to plot.
VTYPE See above.
Returned:None.
gr_setaxes
Sets up the axial plot information in the status variables. The
plot's main title, axes titles, and axes descriptor are passed through here.
Parameters:DISPINTThe display status word. This
word is used to describe how to
display the axes. It is
bit-coded as follows:
Bit 0 -- Box (set) or half-box (clear)
Bit 1 -- Display ticks (set)
Bit 2 -- Ticks out of box (set)
or in box (clear)
Bit 3 -- Numerical labeling (set)
Bit 4 -- Display title (set)
Bit 5 -- Display axes (set).
*MTITCHARThe plot's title.
*XTITCHARThe X axis title.
*YTITCHARThe Y axis title.
Returned:None.
gr_seterase
Sets up the erasure information in the status variables. If
passed a zero, the screen will not be erased between new plots.
Parameters:FLAGINTIf nonzero, erase the plot at
the start of each call to
GR_PLOT or GR_PLOT1.
Returned:None.
gr_setlinestyle
Defines the line style used when plotting a line.
Parameters:STYLEINTThe linestyle:
solid -- 0
dotted -- 1
center -- 2
dashed -- 3
THICKINTThe line thickness. There are
two choices: normal (1) or
thick (3).
Returned:None.
gr_setscreen
Defines the region on the screen to use in displaying the actual
plot. Titles and numerical labeling are placed outside of this region.
The coordinates supplied are screen coordinates. Remember, these
numbers have their origin in the upper left corner of the screen. The
lower y axis is defined as the smaller of the two y axis limits.
Parameters:XMININTThe lower x axis screen limit.
XMAXINTThe upper x axis screen limit.
YMININTThe lower y axis screen limit.
YMAXINTThe upper y axis screen limit.
Returned:None.
gr_setsymbol
Indicates what sort of symbol to use in displaying the data.
Parameters:SYMINTThe symbol to use. The values are:
0 -- a line (default)
1 -- '1'
2 -- '2'
3 -- '3'
4 -- '4'
5 -- '5'
6 -- '6'
7 -- '7'
8 -- '8'
9 -- '9'
10 -- '0'
11 -- 'X'
12 -- '*'
13 -- 'O'
14 -- '+'
Returned:None.
gr_setviewport
Defines the region on the screen to use in displaying the actual
plot. Titles and numerical labeling are placed outside of this region.
The coordinates supplied are fractions of the screen.Remember, these
numbers have their origin in the upper left corner of the screen. The
lower y axis is defined as the smaller of the two y axis limits.
Parameters:XMININTThe lower x axis limit.
XMAXINTThe upper x axis limit.
YMININTThe lower y axis limit.
YMAXINTThe upper y axis limit.
Returned:None.
gr_setxy
Allows the user to manually dictate what the minimum and maximum
values are in each direction. The value-to-screen functions are derived
from the values passed to this function.
Parameters:XMINFLOATThe minimum x axis value.
XMAXFLOATThe maximum x axis value.
YMINFLOATThe minimum y axis value.
YMAXFLOATThe maximum y axis value.
AUTINTTurns on/off autoscaling. If
set to zero, the manual scaling
supplied is used; else,
autoscaling is done.
Returned:None.
gr_textscn
Permits the user to put text at the supplied screen coordinates.
Parameters:*STR CHAR The string to output.
*X VOID The x screen coordinate to start the
string.
*Y VOID The y screen coordiante to start the
string.
DIR INT The direction of the string, HORIZ_DIR
(<= 0) or VERT_DIR (>= 1).
SIZ INT The character size. Each character is
defined as 8x8 pixels; this number is a
multiplier and is defined from 1 to 10.
VTYPE See above.
Returned:None.
gr_textlog
Permits the user to put text at the supplied logical values.
Parameters:*STR CHAR The string to output.
*X VOID The x logical coordinate to start the
string.
*Y VOID The y logical coordinate to start the
string.
DIR INT The direction of the string, HORIZ_DIR
(<= 0) or VERT_DIR (>= 1).
SIZ INT The character size. Each character is
defined as 8x8 pixels; this number is a
multiplier and is defined from 1 to 10.
VTYPE See above.
Returned:None.
gr_histogram
Plots a single array as a histogram. The abcissa is assumed
to be the indices of the array.
Parameters:N INT The number of points to plot.
*Y VOID A pointer to the array of y coordinates
to plot.
VTYPE See above.
Returned:None.
Michael R. Greason
7 June 1989
Turbo C comes with a rich set of plotting functions; however,
these are all geared toward direct screen manipulation, with the
coordinates supplied being the actual screen coordinates. A package
capable of taking an array and plotting it on labeled axes is very
useful and is described here.
There are many functions involved in this package. Nearly all
the functions used by the user are declared VOID. These user functions
will be described below.
User Functions
Several of the functions described below require a parameter
describing the variable type of the data passed to the function. This
parameter will be called the VTYPE, is of type INT, and is defined as
follows:
0 -- Short INT
1 -- INT
2 -- Long INT
3 -- Float
4 -- Double
gr_closeplot
This function is used to terminate a plotting session (not an
individual plot).
Parameters:None.
Returned:None.
gr_clrscn
Wipes the screen of everything on it.
Parameters:None.
Returned:None.
gr_openplot
This function must be the first called in a plotting session.
It initializes the status variables (variables the user should leave
alone) and the device.
Parameters:None.
Returned:INT An error flag is returned. A 0 indicates
success while a 1 indicates an initialization
failure.
gr_oplot
Overplots two arrays on an already defined set of axes.
Parameters:N INT The number of points to plot.
*X VOID A pointer to the array of x coordinates
to plot.
*Y VOID A pointer to the array of y coordinates
to plot.
VTYPE See above.
Returned:None.
gr_oplot1
Overplots a single array on an already defined set of axes. The
abcissa is assumed to be the indices of the array.
Parameters:N INT The number of points to plot.
*Y VOID A pointer to the array of y coordinates
to plot.
VTYPE See above.
Returned:None.
gr_plot
Plots two arrays defining a set of axes.
Parameters:N INT The number of points to plot.
*X VOID A pointer to the array of x coordinates
to plot.
*Y VOID A pointer to the array of y coordinates
to plot.
VTYPE See above.
Returned:None.
gr_plot1
Plots a single array, defining a set of axes. The abcissa is
assumed to be the indices of the array.
Parameters:N INT The number of points to plot.
*Y VOID A pointer to the array of y coordinates
to plot.
VTYPE See above.
Returned:None.
gr_setaxes
Sets up the axial plot information in the status variables. The
plot's main title, axes titles, and axes descriptor are passed through here.
Parameters:DISPINTThe display status word. This
word is used to describe how to
display the axes. It is
bit-coded as follows:
Bit 0 -- Box (set) or half-box (clear)
Bit 1 -- Display ticks (set)
Bit 2 -- Ticks out of box (set)
or in box (clear)
Bit 3 -- Numerical labeling (set)
Bit 4 -- Display title (set)
Bit 5 -- Display axes (set).
*MTITCHARThe plot's title.
*XTITCHARThe X axis title.
*YTITCHARThe Y axis title.
Returned:None.
gr_seterase
Sets up the erasure information in the status variables. If
passed a zero, the screen will not be erased between new plots.
Parameters:FLAGINTIf nonzero, erase the plot at
the start of each call to
GR_PLOT or GR_PLOT1.
Returned:None.
gr_setlinestyle
Defines the line style used when plotting a line.
Parameters:STYLEINTThe linestyle:
solid -- 0
dotted -- 1
center -- 2
dashed -- 3
THICKINTThe line thickness. There are
two choices: normal (1) or
thick (3).
Returned:None.
gr_setscreen
Defines the region on the screen to use in displaying the actual
plot. Titles and numerical labeling are placed outside of this region.
The coordinates supplied are screen coordinates. Remember, these
numbers have their origin in the upper left corner of the screen. The
lower y axis is defined as the smaller of the two y axis limits.
Parameters:XMININTThe lower x axis screen limit.
XMAXINTThe upper x axis screen limit.
YMININTThe lower y axis screen limit.
YMAXINTThe upper y axis screen limit.
Returned:None.
gr_setsymbol
Indicates what sort of symbol to use in displaying the data.
Parameters:SYMINTThe symbol to use. The values are:
0 -- a line (default)
1 -- '1'
2 -- '2'
3 -- '3'
4 -- '4'
5 -- '5'
6 -- '6'
7 -- '7'
8 -- '8'
9 -- '9'
10 -- '0'
11 -- 'X'
12 -- '*'
13 -- 'O'
14 -- '+'
Returned:None.
gr_setviewport
Defines the region on the screen to use in displaying the actual
plot. Titles and numerical labeling are placed outside of this region.
The coordinates supplied are fractions of the screen.Remember, these
numbers have their origin in the upper left corner of the screen. The
lower y axis is defined as the smaller of the two y axis limits.
Parameters:XMININTThe lower x axis limit.
XMAXINTThe upper x axis limit.
YMININTThe lower y axis limit.
YMAXINTThe upper y axis limit.
Returned:None.
gr_setxy
Allows the user to manually dictate what the minimum and maximum
values are in each direction. The value-to-screen functions are derived
from the values passed to this function.
Parameters:XMINFLOATThe minimum x axis value.
XMAXFLOATThe maximum x axis value.
YMINFLOATThe minimum y axis value.
YMAXFLOATThe maximum y axis value.
AUTINTTurns on/off autoscaling. If
set to zero, the manual scaling
supplied is used; else,
autoscaling is done.
Returned:None.
gr_textscn
Permits the user to put text at the supplied screen coordinates.
Parameters:*STR CHAR The string to output.
*X VOID The x screen coordinate to start the
string.
*Y VOID The y screen coordiante to start the
string.
DIR INT The direction of the string, HORIZ_DIR
(<= 0) or VERT_DIR (>= 1).
SIZ INT The character size. Each character is
defined as 8x8 pixels; this number is a
multiplier and is defined from 1 to 10.
VTYPE See above.
Returned:None.
gr_textlog
Permits the user to put text at the supplied logical values.
Parameters:*STR CHAR The string to output.
*X VOID The x logical coordinate to start the
string.
*Y VOID The y logical coordinate to start the
string.
DIR INT The direction of the string, HORIZ_DIR
(<= 0) or VERT_DIR (>= 1).
SIZ INT The character size. Each character is
defined as 8x8 pixels; this number is a
multiplier and is defined from 1 to 10.
VTYPE See above.
Returned:None.
gr_histogram
Plots a single array as a histogram. The abcissa is assumed
to be the indices of the array.
Parameters:N INT The number of points to plot.
*Y VOID A pointer to the array of y coordinates
to plot.
VTYPE See above.
Returned:None.
December 8, 2017
Add comments