Closed discoleo closed 2 years ago
#### Arrow Diamond #### arrowDiamond = function(x, y, d=0.2, lwd=1, d.head=-1, d.lines=0, h.lwd=lwd, col="red", scale=1, join=0) { if(join > 2) stop("Unsupported value for join!"); slope = compute_slope(x, y); ### Head ahead = list(arrowHeadDiamond(x[2], y[2], slope=slope, d=d, scale=scale), lwd = h.lwd); ### ArrowTail if(join == 0 || join == 1) { x[2] = ahead[[1]]$x[2]; y[2] = ahead[[1]]$y[2]; } arrow = arrowTail(x, y, d.lines=d.lines, lwd=lwd, slope=slope); ### Full Arrow lst = list(Arrow=arrow, Head=ahead); class(lst) = c("arrow", "list"); # Plot lines: lines(lst, col=col); invisible(lst); }
##### Diamond ArrowHead #####
plot.base() x = c(0, 6); y = c(1, 6); arrowDiamond(x, y, d=-1, lwd=2); arrowDiamond(c(x[1], 5), c(y[1], y[1]), d=-1, lwd=2); arrowDiamond(c(x[1], x[1]), c(y[1], 5), d=-1, lwd=2);
plot.base() x = c(0, 6); y = c(1, 6); arrowDiamond(x, y, d=-1, lwd=2, join=2); arrowDiamond(c(x[1], 5), c(y[1], y[1]), d=-1, lwd=2, join=2); arrowDiamond(c(x[1], x[1]), c(y[1], 5), d=-1, lwd=2, join=2);
Added.
Join Argument
Function arrowDiamond
Tests
default join
plot.base() x = c(0, 6); y = c(1, 6); arrowDiamond(x, y, d=-1, lwd=2); arrowDiamond(c(x[1], 5), c(y[1], y[1]), d=-1, lwd=2); arrowDiamond(c(x[1], x[1]), c(y[1], 5), d=-1, lwd=2);
join through
plot.base() x = c(0, 6); y = c(1, 6); arrowDiamond(x, y, d=-1, lwd=2, join=2); arrowDiamond(c(x[1], 5), c(y[1], y[1]), d=-1, lwd=2, join=2); arrowDiamond(c(x[1], x[1]), c(y[1], 5), d=-1, lwd=2, join=2);