curvedarrow {diagram}R Documentation

adds curved arrow between two points

Description

Connects two points with an ellipsoid line and adds an arrowhead at a certain distance

Usage

curvedarrow(from, to, lwd=2, lty=1, lcol="black", arr.pos=0.5,  
  curve=1, dr=0.01, endhead=FALSE, ...)

Arguments

from coordinates (x,y) of the point *from* which to draw arrow.
to coordinates (x,y) of the point *to* which to draw arrow.
lwd line width.
lty line type.
lcol line color.
arr.pos relative position of arrowhead.
curve relative size of curve (fraction of points distance) - see details.
dr size of segments, in radians, to draw ellipse (decrease for smoother).
endhead if TRUE: the arrow line stops at the arrowhead; default = FALSE.
... arguments passed to function Arrows.

Details

A curved arrow is drawn between two points '(from, to)'

The position of the arrowhead, is set with arr.pos, a value between 0(start point) and 1(endpoint)

The line curvature is set with curve which expresses the ellipse radius as a fraction of the distance between the two points. For instance, curve=0.5 will draw an ellepse with small radius half of a circle.

The type of the arrowhead is set with arr.type which can take the values:

see Arrowhead from package shape for details on arrow head

Value

default coordinates (x,y) where arrowhead is drawn.

Author(s)

Karline Soetaert <k.soetaert@nioo.knaw.nl>.

See Also

straightarrow, segmentarrow, bentarrow, selfarrow, treearrow, splitarrow,

arrows: the comparable R function,

Arrows: more complicated arrow function from package shape.

Examples

  openplotmat(main="curvedarrow")
  pos <-coordinates(pos=4,my=0.2)
  text(pos,LETTERS[1:4],cex=2)
  for (i in 1:3) curvedarrow(from=pos[1,]+c(0,-0.05),to=pos[i+1,]+c(0,-0.05),
                             curve=0.5,arr.pos=1)
  for (i in 1:3) curvedarrow(from=pos[1,]+c(0,0.05),to=pos[i+1,]+c(0,0.05),
                             curve=-0.25,arr.adj=1,arr.pos=0.5)

[Package diagram version 1.4 Index]