Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

circle(3g)

curve_resolution(3G)

drawing_mode(3G)

fill_color(3G)

interior_style(3G)

perimeter_color(3G)

perimeter_type(3G)

perimeter_repeat_length(3G)

polygon(3G)

ARC(3G)

NAME

arc, intarc, intpartial_arc, partial_arc − define an elliptical or circular region to be filled and/or edged. 

SYNOPSIS

C Syntax:

void arc(fildes,x_radius,y_radius,x_center,y_center,start,stop,rotation,
close_type);
int fildes,close_type;
float x_radius,y_radius,x_center,y_center,start,stop,rotation;

void intarc(fildes,radius,x_center,y_center,start,stop,close_type);
int fildes,radius,x_center,y_center,close_type;
float start,stop;

void intpartial_arc(fildes,radius,x_center,y_center,start,stop,close_type,
closure);
int fildes,radius,x_center,y_center,close_type,closure;
float start,stop;

void partial_arc(fildes,x_radius,y_radius,x_center,y_center,start,stop,
rotation,close_type,closure);
int fildes,close_type,closure;
float x_radius,y_radius,x_center,y_center,start,stop,rotation;

FORTRAN77 Syntax:

subroutine arc(fildes,x_radius,y_radius,x_center,y_center,start,stop,
rotation,close_type)
integer*4 fildes,close_type
real x_radius,y_radius,x_center,y_center,start,stop,rotation

subroutine intarc(fildes,radius,x_center,y_center,start,stop,close_type)
integer*4 fildes, radius,x_center,y_center,close_type
real start,stop

subroutine intpartial_arc(fildes,radius,x_center,y_center,start,stop,
close_type,closure)
integer*4 fildes, radius,x_center,y_center,close_type,closure
real start,stop

subroutine partial_arc(fildes,x_radius,y_radius,x_center,y_center,
start,stop,rotation,close_type,closure)
integer*4 fildes,close_type,closure
real x_radius,y_radius,x_center,y_center,start,stop,rotation

Pascal Syntax:

procedure arc(fildes:integer;x_radius,y_radius,x_center,y_center,start,
stop,rotation:real;close_type:integer);

procedure intarc(fildes,radius,x_center,y_center:integer;start,stop:real,
close_type:integer);

procedure intpartial_arc(fildes,radius,x_center,y_center:integer;
start,stop:real;close_type,closure:integer);

procedure partial_arc (fildes:integer; x_radius,y_radius,x_center,y_center,
start,stop,rotation:real;close_type, closure:integer);

DESCRIPTION

Input Parameters

fildes Integer file descriptor returned by gopen when an I/O path to a graphics device is opened. 

radius Radius of the arc. 

x_radius,y_radius Radii of the arc in the x and y directions respectively. 

x_center,y_center Coordinate of the arc center. 

start,stop Specify the limits of an elliptical arc or circular arc in radians. 

rotation Specifies the amount the arc is to be rotated in radians. 

close_type specifies how an arc is to be closed. Selected from: NO_CHORD (0), PIE (1) or CHORD (2). 

Discussion

An elliptical arc or circular arc of specified radii centered at (x_center,y_center) is filled and/or outlined according to the current interior style.  The arc is closed in one of three ways based on close_type.  If close_type is NO_CHORD, only the arc is drawn. If close_type is PIE, two edges are added from the center of the arc to both the start and stop position. If close_type is CHORD, one edge is added that connects the start and stop postion of the arc.  As with all output primitives, the arc is affected by the current drawing mode and write enable.  The curve is drawn with chords of length specified in curve_resolution. For partial_arc and intpartial_arc, the vertices of the arc are added to the polygon vertex list, as in the case of partial_polygons. Arcs are drawn from start to stop.  If stop is greater than start, the arc is drawn in a counter-clockwise direction.  If stop is less than start, the arc is drawn in a clockwise direction. 

If the transform mode has been set to THREE_D, the z value used is that of the current position.  Circles and circular arcs are drawn by specifying x_radius and y_radius to be equal. 

Non-filled arcs are generated by setting the interior style to INT_HOLLOW and edged. 

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 fildes. 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 other Starbase call besides intpartial_arc, intpartial_circle, intpartial_polygon, partial_arc, partial_ellipse, partial_polygon2d, partial_polygon3d, or dcpartial_polygon, in the middle of a list of procedure calls that add vertices to the polygon buffer and before a call to arc, polygon, rectangle, or ellipse produces unpredictable, device-dependent results. 

When using a distorted mapping (x units do not equal y units), integer arcs may not remain circular. This effect is unpredictable and device-dependent, and may not remain consistent with future releases. 

SEE ALSO

circle(3g), curve_resolution(3G), drawing_mode(3G), ellipse (3G), fill_color(3G), interior_style(3G),
perimeter_color(3G), perimeter_type(3G), perimeter_repeat_length(3G), polygon(3G),
Starbase Graphics Techniques. 

Hewlett-Packard Company  —  May 11, 2021

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026