# ARC, ARC_W (W*S)

Graphics Functions: Draw elliptical arcs using the current graphics color.

## 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.

### Note

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

Parent topic: Graphics Library Routines