void tcircle_arc (strid, arc, open_close)
Pint strid; Tcircle_arc *arc; Tarc_close open_close;
typedef struct {
Tcircle_arc_type type;
union {
struct {
Ppoint c; /* Circle center */
Ppoint i; /* Initial point of the arc */
Pfloat a; /* Arc angle */
} cia;
struct {
Ppoint c; /* Circle center */
Ppoint i; /* Initial point of the arc */
Ppoint f; /* Final point of the arc */
} cif;
struct {
Ppoint i; /* Initial point of the arc */
Ppoint m; /* Middle point of the arc */
Ppoint f; /* Final point of the arc */
} imf;
struct {
Ppoint c; /* Circle center */
Pfloat r; /* Circle radius */
Pfloat s; /* Initial angle of the arc */
Pfloat e; /* Final angle of the arc */
} crse;
} geometry
} Tcircle_arc;
typedef enum {
TCENTER_PINIT_ANGLE,
TCENTER_PINIT_PFINAL,
TPINIT_PMIDDLE_PFINAL,
TCENTER_RADIUS_ASTART_AEND
} Tcircle_arc_type;
- by the center of the circle, the starting point of the arc and its angle
- by the center of the circle, the starting point and the end point of the arc.
- by the starting point, the middle point and the end point of the arc.
- by the center of the circle, the circle radius, the starting angle and the end angle.
The arc is shown by a certain number of points. The distribution of these points can be controlled by first calling the tset_step_angle function to define the angle separating two points.
Depending on the setting of the flag open_close, the arc is represented by the PHIGS primitive polyline (TOPENED_ARC), or by a fill area set primitive (TEND_CLOSE_ARC or TCENTER_CLOSE_ARC)




