Learn R Programming

geophys (version 1.4-1)

NORMvec: Plot Normal Vector

Description

Calculate and plot a normal vecotor to a plane

Usage

NORMvec(PPs, xscale, Rview, aglyph = list(), add = TRUE)

Arguments

PPs

Points for plotting, these define the plane

xscale

scale for the figure

Rview

viewing matrix

aglyph

glyph for plotting the normal vector in 3D

add

logical, whether to add to current plot

Value

Graphical Side effects

See Also

pstart, PLOTbox, PLOTplane, stress

Examples

Run this code
# NOT RUN {
#######    set colors
 axcol = 'black'
 boxcol = 'blue'
 planecol = 'brown'

####   view angle
 Rview  =    RFOC::ROTZ(-130) 
# }
# NOT RUN {
<!-- %*% RFOC::ROTX(-50)  -->
# }
# NOT RUN {
###   set arbitrary scale
    xscale = 100

###  set glphy for plotting 3D vectors
 headlen =xscale* .3/6
       len =xscale* .7/6
       basethick =xscale* 0.05/2
       headlip =xscale* .02/2
       aglyph = RFOC::Z3Darrow(len = len , basethick =basethick ,
             headlen =headlen , headlip=headlip )

####   set three points and combine them with rbind
     P1 = xscale*c(.2, 1,1,0)
    P2 = xscale*c(1, .1,1,0)
    P3 = xscale*c(1, 1,.4,0)

    PPs = rbind(P1, P2, P3)
    
  ###  convert points for view
Rp = PPs  
# }
# NOT RUN {
<!-- %*% Rview -->
# }
# NOT RUN {
###   create box  and scale it
   BOX <-matrix(c(0,0,0,0,
            0, 1, 0,0,
            0, 1, 1,0,
            0, 0, 1,0,
            1,0,0,0,
            1, 1, 0,0,
            1, 1, 1,0,
            1, 0, 1,0), ncol=4, byrow=TRUE)


    BOX = xscale*BOX

    ##############   create axes and scale them
AX = matrix(c(0,0,0,0,
            1, 0, 0,0,
            0, 0, 0,0,
            0, 1, 0,0,
            0,0,0,0,
            0, 0, 1,0), ncol=4, byrow=TRUE)

    AX = 1.5*xscale*AX

 ##############   rotate axes and box
    Rax =  AX 
# }
# NOT RUN {
<!-- %*% Rview -->
# }
# NOT RUN {
    
          Rbox =   BOX 
# }
# NOT RUN {
<!-- %*% Rview -->
# }
# NOT RUN {
 ##############  start the figure
pstart(xscale=xscale)
 ######  plot the box
PLOTbox(Rax, Rbox, axcol= 'black', boxcol= 'blue')
 ##############  plot the plane
PLOTplane(Rp)

#######  plot the normal
 NN = NORMvec(PPs, xscale, Rview,aglyph=aglyph, add=TRUE)

# }

Run the code above in your browser using DataLab