Visible to Intel only — GUID: GUID-DC9F3600-625D-4995-8DCE-2C52F446210A
Visible to Intel only — GUID: GUID-DC9F3600-625D-4995-8DCE-2C52F446210A
ARC, ARC_W
Graphics Functions: Draw elliptical arcs using the current graphics color. These routines are only available for Windows.
Module
USE IFQWIN
result = ARC (x1,y1,x2,y2,x3,y3,x4,y4)
result = ARC_W (wx1,wy1,wx2,wy2,wx3,wy3,wx4,wy4)
x1, y1 |
(Input) INTEGER(2). Viewport coordinates for upper-left corner of bounding rectangle. |
x2, y2 |
(Input) INTEGER(2). Viewport coordinates for lower-right corner of bounding rectangle. |
x3, y3 |
(Input) INTEGER(2). Viewport coordinates of start vector. |
x4, y4 |
(Input) INTEGER(2). Viewport coordinates of end vector. |
wx1,wy1 |
(Input) REAL(8). Window coordinates for upper-left corner of bounding rectangle. |
wx2, wy2 |
(Input) REAL(8). Window coordinates for lower-right corner of bounding rectangle. |
wx3, wy3 |
(Input) REAL(8). Window coordinates of start vector. |
wx4, wy4 |
(Input) REAL(8). Window coordinates of end vector. |
Results
The result type is INTEGER(2). It is nonzero if successful; otherwise, 0. If the arc is clipped or partially out of bounds, the arc is considered successfully drawn and the return is 1. If the arc is drawn completely out of bounds, the return is 0.
The center of the arc is the center of the bounding rectangle defined by the points (x1, y1) and (x2, y2) for ARC and (wx1, wy1) and (wx2, wy2) for ARC_W.
The arc starts where it intersects an imaginary line extending from the center of the arc through (x3, y3) for ARC and (wx3, wy3) for ARC_W. It is drawn counterclockwise about the center of the arc, ending where it intersects an imaginary line extending from the center of the arc through (x4, y4) for ARC and (wx4, wy4) for ARC_W.
ARC uses the view-coordinate system. ARC_W uses the window-coordinate system. In each case, the arc is drawn using the current color.
The ARC routine described here is a QuickWin graphics routine. If you are trying to use the Microsoft* Platform SDK version of the Arc routine by including the IFWIN module, you need to specify the routine name as MSFWIN$Arc.
Example
This program draws the arc shown below.
USE IFQWIN
INTEGER(2) status, x1, y1, x2, y2, x3, y3, x4, y4
x1 = 80; y1 = 50
x2 = 240; y2 = 150
x3 = 120; y3 = 75
x4 = 90; y4 = 180
status = ARC( x1, y1, x2, y2, x3, y3, x4, y4 )
END