polycircle(3G)
NAME
dcpolycircle, intpolycircle − define circular regions to be filled and/or edged
SYNOPSIS
C Syntax:
void dcpolycircle (fildes,clist,numcircles,radius,flags);
int fildes,clist[],numcircles,radius,flags;
void intpolycircle (fildes,clist,numcircles,radius,flags);
int fildes,clist[],numcircles,radius,flags;
FORTRAN77 Syntax:
subroutine dcpolycircle (fildes,clist,numcircles,radius,flags);
integer*4 fildes,clist(numcircles*(2+flags)),numcircles,radius,flags;
subroutine intpolycircle (fildes,clist,numcircles,radius,flags);
integer*4 fildes,clist(numcircles*(2+flags)),numcircles,radius,flags;
Pascal Syntax:
procedure dcpolycircle (fildes:integer,var clist:array[lo..hi:integer] of integer;
numcircles,radius,flags:integer);
procedure intpolycircle (fildes:integer,var clist:array[lo..hi:integer] of integer;
numcircles,radius,flags:integer);
DESCRIPTION
Input Parameters
fildes Integer file descriptor returned by gopen when an I/O path to a graphics device is opened.
clist Array of integer world coordinate data used by intpolycircle or integer device coordinate data used by dcpolycircle. Data is arranged in x, y pairs representing the circles’ centers. This data may contain move/draw indicators after each x, y pair.
numcircles Number of circles to be drawn.
radius Radius of the circles, in integer world coordinates or device coordinates.
flags If set to FALSE (0), move/draw data is not included in the clist.
If set to TRUE (1), move/draw indicators are included in the clist following each pair of x, y coordinates. Move/draw indicators occupy the same amount of space as a single coordinate and are interspersed with the coordinate data. All bits of the indicator must be zero to indicate a move (integer 0). If move/draw indicators are present, each (x,y) pair of coordinates is followed by a move/draw indicator. For example:
| 2-dimensions |
| x1 |
| y1 |
| move/draw1 |
| x2 |
| y2 |
| move/draw2 |
| . |
| . |
| . |
| . |
Discussion
Circles with the specified radius are drawn, centered at (x,y) as specified in the clist array, regardless of whether that coordinate contains a move or a draw flag. If flags is TRUE (1), the move/draw flag following the position coordinate is ignored.
Each entry in the clist may contain any number of coordinates. Note that vertex_format does not apply to intpolycircle.
The circles are filled, left hollow, and outlined according to the current interior style. As with all output primitives, the arcs are affected by the current drawing mode and write enable.
No clipping or transformations are performed on device coordinate procedures.
Integer operations are only available when using the INT_XFORM gopen mode. When in INT_XFORM mode floating point operations are not available for that file descriptor. Floating point operations are the default, or can be specified with FLOAT_XFORM mode. For a list of integer operations, floating point operations and common operations see the starbase.3g manual page.
NOTE
Doing any Starbase calls other than intpartial_circle or intpartial_polygon in the middle of a list of procedure calls that add vertices to the polygon buffer and before a call to intpolygon, intrectangle, intarc, intcircle, intpolyrectangle, or intpolycircle produces unpredictable, device-dependent results.
When using a distorted mapping (where the VDC units in the X direction does not equal the VDC units in the Y direction; or the current transformation matrix scales the X and Y directions differently), integer circles may not remain circular. This effect is unpredictable and device-dependent, and could change in future releases.
SEE ALSO
Starbase Reference: circle(3G), drawing_mode(3G), fill_color(3G), vertex_format(3G), write_enable(3G).
Starbase Graphics Techniques.
Hewlett-Packard Company — HP-UX Release 9.0: August 1992