| runif.multi.tri {pcds} | R Documentation |
Generation of Uniform Points in the Convex Hull of Points
Description
An object of class "Uniform".
Generates n points uniformly
in the Convex Hull of set of points, Yp.
That is, generates uniformly in each of the triangles
in the Delaunay triangulation of Yp, i.e.,
in the multiple triangles partitioning the convex hull of Yp.
If Yp consists only of 3 points,
then the function behaves like the
function runif.tri.
DTmesh is the Delaunay triangulation of Yp,
default is DTmesh=NULL.
DTmesh yields triangulation nodes with neighbours
(result of tri.mesh function
from interp package).
See (Okabe et al. (2000); Ceyhan (2010); Sinclair (2016)) for more on Delaunay triangulation and the corresponding algorithm.
Usage
runif.multi.tri(n, Yp, DTmesh = NULL)
Arguments
n |
A positive integer
representing the number of uniform points to be generated
in the convex hull of the point set |
Yp |
A set of 2D points whose convex hull is the support of the uniform points to be generated. |
DTmesh |
Triangulation nodes with neighbours
(result of |
Value
A list with the elements
type |
The type of the pattern from which points are to be generated |
mtitle |
The |
tess.points |
The points which constitute the vertices of the triangulation and whose convex hull determines the support of the generated points. |
gen.points |
The output set of generated points uniformly
in the convex hull of |
out.region |
The outer region which contains the support region,
|
desc.pat |
Description of the point pattern from which points are to be generated |
num.points |
The |
txt4pnts |
Description of the two numbers in |
xlimit, ylimit |
The ranges of the |
Author(s)
Elvan Ceyhan
References
Ceyhan E (2010).
“Extension of One-Dimensional Proximity Regions to Higher Dimensions.”
Computational Geometry: Theory and Applications, 43(9), 721-748.
Okabe A, Boots B, Sugihara K, Chiu SN (2000).
Spatial Tessellations: Concepts and Applications of Voronoi Diagrams.
Wiley, New York.
Sinclair D (2016).
“S-hull: a fast radial sweep-hull routine for Delaunay triangulation.”
1604.01428.
See Also
runif.tri, runif.std.tri,
and runif.basic.tri,
Examples
#nx is number of X points (target) and ny is number of Y points (nontarget)
nx<-100; ny<-4; #try also nx<-1000; ny<-10;
set.seed(1)
Yp<-cbind(runif(ny,0,10),runif(ny,0,10))
Xdt<-runif.multi.tri(nx,Yp)
#data under CSR in the convex hull of Ypoints
Xdt
summary(Xdt)
plot(Xdt)
Xp<-Xdt$g
#or use
DTY<-interp::tri.mesh(Yp[,1],Yp[,2],duplicate="remove")
#Delaunay triangulation based on Y points
Xp<-runif.multi.tri(nx,Yp,DTY)$g
#data under CSR in the convex hull of Ypoints
Xlim<-range(Yp[,1])
Ylim<-range(Yp[,2])
xd<-Xlim[2]-Xlim[1]
yd<-Ylim[2]-Ylim[1]
#plot of the data in the convex hull of Y points together with the Delaunay triangulation
plot(Xp, xlab=" ", ylab=" ",
main="Uniform Points in Convex Hull of Y Points",
xlim=Xlim+xd*c(-.05,.05),ylim=Ylim+yd*c(-.05,.05),type="n")
interp::plot.triSht(DTY, add=TRUE,
do.points = TRUE,pch=16,col="blue")
points(Xp,pch=".",cex=3)
Yp<-rbind(c(.3,.2),c(.4,.5),c(.14,.15))
runif.multi.tri(nx,Yp)