Draw arc
draw.arc.Rd
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.
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")