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