\name{RMangle}
\alias{RMangle}
\title{Anisotropy matrix given by angle}
\description{
  \command{RMangle} delivers an anisotropy matrix for the
  argument \code{Aniso} in \command{\link{RMmodel}} in two dimensions.
  \command{RMangle} requires one or two stretching values, passed by
  \code{ratio} or \code{diag}, and an \command{angle}.

  In two dimensions and with
  \code{angle} equal to \eqn{a} and \code{diag} equal to \eqn{(d1, d2)} the
  anisotropy matrix \eqn{A} is
  
  \code{A = diag(d1, d2) \%*\% matrix(ncol=2, c(cos(a), sin(a), -sin(a), cos(a)))}

  In three dimensions and with
  \code{angle} equal to \eqn{a}, second angle \eqn{L}
  and \code{diag} equal to \eqn{(d1, d2, d3)} the
  anisotropy matrix \eqn{A} is
 
  \code{A = diag(d1, d2, d3) \%*\% matrix(ncol=3, c(cos(a) * cos(L), sin(a) * cos(L), sin(L), -sin(a), cos(a), 0, -cos(a) * sin(L), -sin(a) * sin(L), cos(L)
    ))}
  i.e. \eqn{Ax} turns a vector x first in the \eqn{x-z} plane, then
  in the \eqn{x-y} plane.
}
 

\usage{
RMangle(angle, lat.angle, ratio, diag) 
}

\arguments{
  \item{angle}{angle \code{a}}
  \item{lat.angle}{second angle; in 3 dimensions only}
 \item{ratio}{equivalent to \code{diag=c(1, 1/ratio)}; in 2 dimensions only}
 \item{diag}{the diagonal components of the matrix}
}

\value{
 \command{\link{RMangle}} returns an object of class \code{\link[=RMmodel-class]{RMmodel}}.
}

\me
\seealso{
 \command{\link{RMtrafo}}, \command{\link{RMmodel}}
  }

\examples{\dontshow{StartExample()}
RFoptions(seed=0) ## *ANY* simulation will have the random seed 0; set
##                   RFoptions(seed=NA) to make them all random again

model <- RMexp(Aniso=RMangle(angle=pi/4, ratio=3))
plot(model, dim=2)

x <- seq(0, 2, 0.05)
z <- RFsimulate(x, x, model=model)
plot(z)


model <- RMexp(Aniso=RMangle(angle=pi/4, lat.angle=pi/8, diag=c(1,2,3)))
x <- seq(0, 2, 0.2)
z <- RFsimulate(x, x, x, model=model)
plot(z, MARGIN.slices=3)


## next model gives an example how to estimate the parameters back
n <- 20
x <- runif(n, 0, 10)
y <- runif(n, 0, 10)
coords <- expand.grid(x, y)
model <- RMexp(Aniso=RMangle(angle=pi/4, diag=c(1/4, 1/12)))
d <- RFsimulate(model, x=coords[, 1], y=coords[, 2], n=10)
estmodel <- RMexp(Aniso=RMangle(angle=NA, diag=c(NA, NA)))
system.time(RFfit(estmodel, data=d, modus_operandi='sloppy'))

\dontshow{FinalizeExample()}}


\keyword{spatial}
\keyword{models}




