curvedarrow {diagram}R Documentation

adds curved arrow between two points

Description

Connects two points with an ellipsoid line;
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 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.3.1 Index]