Learn R Programming

pcds (version 0.1.4)

XinCHY: Points from one class inside the convex hull of the points from the other class

Description

Given two 2D data sets, Xp and Yp, it returns the Xp points inside the convex hull of Yp points.

See (okabe:2000,ceyhan:comp-geo-2010,sinclair:2016;textualpcds) for more on Delaunay triangulation and the corresponding algorithm.

Usage

XinCHY(Xp, Yp)

Value

Xp points inside the convex hull of Yp points

Arguments

Xp

A set of 2D points which constitute the data set.

Yp

A set of 2D points which constitute the vertices of the Delaunay triangles.

Author

Elvan Ceyhan

References

See Also

plotDeltri

Examples

Run this code
#nx is number of X points (target) and ny is number of Y points (nontarget)
nx<-20; ny<-4;  #try also nx<-40; ny<-10 or nx<-1000; ny<-10;

set.seed(1)
Xp<-cbind(runif(nx,0,1),runif(nx,0,1))
Yp<-cbind(runif(ny,0,1),runif(ny,0,1))

DT<-interp::tri.mesh(Yp[,1],Yp[,2],duplicate="remove")

Xlim<-range(Xp[,1],Yp[,1])
Ylim<-range(Xp[,2],Yp[,2])
xd<-Xlim[2]-Xlim[1]
yd<-Ylim[2]-Ylim[1]

Xch<-XinCHY(Xp,Yp)

plot(Xp,main=" ", xlab=" ", ylab=" ",
xlim=Xlim+xd*c(-.05,.05),ylim=Ylim+yd*c(-.05,.05),pch=".",cex=3)
interp::convex.hull(DT,plot.it = TRUE, add = TRUE)  # or try polygon(Yp[ch$i,])
points(Xch,pch=4,col="red")

XinCHY(Xp,Yp)
XinCHY(Xp,Yp[1:3,])

XinCHY(Xp,rbind(Yp,Yp))

dat.fr<-data.frame(a=Xp)
XinCHY(dat.fr,Yp)

dat.fr<-data.frame(a=Yp)
XinCHY(Xp,dat.fr)

Run the code above in your browser using DataLab