Learn R Programming

geophys (version 1.2-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
#######    set colors
 axcol = 'black'
 boxcol = 'blue'
 planecol = 'brown'

####   view angle
 Rview  =    ROTZ(-130)
###   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 = 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
###   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
    
          Rbox =   BOX
 ##############  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