Skip to contents

Draw one or more arcs using classic graphics.

Usage

draw.arc(x=1,y=NULL,radius=1,angle1=deg1*pi/180,angle2=deg2*pi/180, 
  deg1=0,deg2=45,n=0.05,col=NA,lwd=NA,...)

Arguments

x

x coordinate of center. Scalar or vector.

y

y coordinate of center. Scalar or vector.

radius

radius. Scalar or vector.

angle1

Starting angle in radians. Scalar or vector.

angle2

Ending angle in radians. Scalar or vector.

deg1

Starting angle in degrees. Scalar or vector.

deg2

Ending angle in degrees. Scalar or vector.

n

Number of polygons to use to approximate the arc.

col

Arc colors.

lwd

Line width for the arc.

...

Other arguments passed to segments. Vectorization is not supported for these.

Details

Draws one or more arcs from angle1 to angle2. If angle1 is numerically greater than angle2, then the angles are swapped.

Be sure to use an aspect ratio of 1 as shown in the example to avoid distortion. For argument 'n' (which may be either a scalar or a vector, although most likely you will leave it at the default value), an integer value means to use that number of segments to approximate the arc, while a non-integer value means to use enough segments so that the angle that successive segments make with one another is no more than n radians.

Value

Returns a matrix of expanded arguments invisibly.

Author

Gabor Grothendieck. Improvements by Ted Toal.

Examples


   plot(1:10, asp = 1,main="Test draw.arc")
   draw.arc(5, 5, 1:10/10, deg2 = 1:10*10, col = "blue")
   draw.arc(8, 8, 1:10/10, deg2 = 1:10*10, col = 1:10)
   draw.arc(5, 5, 3, deg1=100, deg2=170, col="gold", lwd=50, lend=1)

   # example taken from post by Hans Borcher:
   # https://stat.ethz.ch/pipermail/r-help/2009-July/205728.html
   # Note setting of aspect ratio to 1 first.
   curve(sin(x), 0, pi, col="blue", asp=1)
   draw.arc(pi/2, 0, 1, deg1=45, deg2=135, col="red")