# BOXarrows3D: Create a 3D Arrow structure In RFOC: Graphics for Spherical Distributions and Earthquake Focal Mechanisms

## Description

Create and project and plot 3D arrows with viewing Matrix.

## Usage

 ```1 2 3``` ```BOXarrows3D(x1, y1, z1, x2, y2, z2, aglyph = NULL, Rview = ROTX(0), col = grey(0.5), border = "black", len = 0.7, basethick = 0.05, headlen = 0.3, headlip = 0.02) ```

## Arguments

 `x1` x-coordinates of base of arrows `y1` y-coordinates of base of arrows `z1` z-coordinates of base of arrows `x2` x-coordinates of head of arrows `y2` y-coordinates of head of arrows `z2` z-coordinates of head of arrows `aglyph` glyph structure, default is Z3Darrow `Rview` Viewing matrix `col` fill color `border` Border color `len` Length `basethick` thickness of the base `headlen` thickness of the head `headlip` width of the overhanging lip

## Details

Arrows point from base to head.

## Value

Used for graphical side effects.

## Note

Any 3D glyph strucutre can be used

## Author(s)

Jonathan M. Lees <jonathan.lees@unc.edu>

Z3Darrow

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41``` ```## Not run: #### animate 10 random arrow vectors L = list(x1 = runif(10, min=-2, max=2), y1 = runif(10, min=-2, max=2), z1=runif(10, min=-4, max=4), x2 = runif(10, min=-2, max=2), y2 = runif(10, min=-2, max=2), z2=runif(10, min=-4, max=4) ) headlen = .3 len = .7 basethick = 0.05 headlip = .02 aglyph = Z3Darrow(len = len , basethick =basethick , headlen =headlen , headlip=headlip ) r1 = 8 theta = seq(from=0, to=2*360, length=200) mex = r1*cos(theta*pi/180) mey = r1*sin(theta*pi/180) mez = seq(from=r1, to =0 , length=length(mex)) ## mez=rep(r1, length=length(mex)) angz = atan2(mey, mex)*180/pi angx = atan2(sqrt(mex^2+mey^2), mez)*180/pi pal=c("red", "blue", "green") ## aglyph = gblock for(j in 1:length(angz)) { Rview = ROTZ(angz[j]) plot(c(-4,4), c(-4,4), type='n', asp=1); grid() BOXarrows3D(L\$x1,L\$y1,L\$z1, L\$x2,L\$y2,L\$z2, aglyph=aglyph, Rview=Rview, col=pal) Sys.sleep(.1) } ## End(Not run) ```

RFOC documentation built on May 2, 2019, 1:38 p.m.