Learn R Programming

pcds (version 0.1.2)

runif.stdtetra: Generation of Uniform Points in the Standard Regular Tetrahedron \(T_h\)

Description

An object of class "Uniform". Generates k points uniformly in the standard regular tetrahedron \(T_h=T((0,0,0),(1,0,0),(1/2,\sqrt{3}/2,0),(1/2,\sqrt{3}/6,\sqrt{6}/3))\).

Usage

runif.stdtetra(k)

Arguments

k

A positive integer representing the number of uniform points to be generated in the standard regular tetrahedron \(T_h\).

Value

A list with the elements

type

The type of the pattern from which points are to be generated

mtitle

The "main" title for the plot of the point pattern

tess.points

The vertices of the support region of the uniformly generated points, it is the standard regular tetrahedron \(T_h\) for this function

gen.points

The output set of generated points uniformly in the standard regular tetrahedron \(T_h\).

out.region

The outer region which contains the support region, NULL for this function.

desc.pat

Description of the point pattern from which points are to be generated

num.points

The vector of two numbers, which are the number of generated points and the number of vertices of the support points (here it is 4).

txt4pnts

Description of the two numbers in num.points

xlimit,ylimit,zlimit

The ranges of the \(x\)-, \(y\)-, and \(z\)-coordinates of the support, \(T_h\)

See Also

runif.tetra, runif.tri and runifMT

Examples

Run this code
# NOT RUN {
A<-c(0,0,0); B<-c(1,0,0); C<-c(1/2,sqrt(3)/2,0); D<-c(1/2,sqrt(3)/6,sqrt(6)/3)
tetra<-rbind(A,B,C,D)
n<-10  #try also n<-100

set.seed(1)
Xdt<-runif.stdtetra(n)
Xdt
summary(Xdt)
plot(Xdt)

Dt<-runif.stdtetra(n)$g

Xlim<-range(tetra[,1])
Ylim<-range(tetra[,2])
Zlim<-range(tetra[,3])
xd<-Xlim[2]-Xlim[1]
yd<-Ylim[2]-Ylim[1]
zd<-Zlim[2]-Zlim[1]

plot3D::scatter3D(Dt[,1],Dt[,2],Dt[,3],
phi =20,theta=15, bty = "g", pch = 20, cex = 1, ticktype = "detailed",
xlim=Xlim+xd*c(-.05,.05),ylim=Ylim+yd*c(-.05,.05), zlim=Zlim+zd*c(-.05,.05))
#add the vertices of the tetrahedron
plot3D::points3D(tetra[,1],tetra[,2],tetra[,3], add=TRUE)
L<-rbind(A,A,A,B,B,C); R<-rbind(B,C,D,C,D,D)
plot3D::segments3D(L[,1], L[,2], L[,3], R[,1], R[,2],R[,3], add=TRUE,lwd=2)

plot3D::text3D(tetra[,1]+c(.05,0,0,0),tetra[,2],tetra[,3],
labels=c("A","B","C","D"), add=TRUE)
# }
# NOT RUN {
# }
# NOT RUN {
#need to install scatterplot3d package and call "library(scatterplot3d)"
s3d<-scatterplot3d(Dt, highlight.3d=TRUE,xlab="x",ylab="y",zlab="z",
              col.axis="blue", col.grid="lightblue",
               main="3D Scatterplot of the data", pch=20)
s3d$points3d(tetra,pch=20,col="blue")
# }
# NOT RUN {
# }

Run the code above in your browser using DataLab