curvedarrow.RdConnects two points with an ellipsoid line and adds an arrowhead at a certain distance
curvedarrow(from, to, lwd = 2, lty = 1, lcol = "black",
arr.col = lcol, arr.pos = 0.5, curve = 1, dr = 0.01,
endhead = FALSE, segment = c(0, 1), ...)coordinates (x,y) of the point *from* which to draw arrow.
coordinates (x,y) of the point *to* which to draw arrow.
line width.
line type.
line color.
arrowhead color.
relative position of arrowhead.
relative size of curve (fraction of points distance) - see details.
size of segments, in radians, to draw ellipse (decrease for smoother).
if TRUE: the arrow line stops at the arrowhead;
default = FALSE.
if not c(0,1): then the arrow line will cover only
part of the requested path,
e.g. if segment = c(0.2,0.8), it will start 0.2 from from and
till 0.8.
arguments passed to function Arrows.
coordinates (x,y) where arrowhead is drawn.
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:
"none" : skips the drawing of arrows.
"simple" : uses comparable R function arrows.
"triangle": uses filled triangle.
"curved" : draws arrowhead with curved edges.
"circle" : draws circular head.
"ellipse" : draws ellepsoid head.
"T" : draws T-shaped (blunt) head.
The size of the arrow head can be specified with the arguments
arr.length and arr.width.
See Arrowhead from package shape for details on
arrow head
straightarrow, segmentarrow,
bentarrow,
selfarrow, treearrow, splitarrow,
arrows: the comparable R function,
Arrows: more complicated arrow function from package
shape.
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,
arr.type = "triangle", arr.col = "blue")