Learn R Programming

pcds (version 0.1.2)

IndNPEtriSet: The indicator for the presence of an arc from a point in set S to the point pt for Proportional Edge Proximity Catch Digraphs (PE-PCDs) - one triangle case

Description

Returns \(I(\)pt in \(N_{PE}(x,r)\) for some \(x\) in S\()\), that is, returns 1 if pt is in \(\cup_{x in S}N_{PE}(x,r)\), returns 0 otherwise.

PE proximity region is constructed with respect to the triangle tri with the expansion parameter \(r \ge 1\) and vertex regions are based on the center, \(M=(m_1,m_2)\) in Cartesian coordinates or \(M=(\alpha,\beta,\gamma)\) in barycentric coordinates in the interior of the triangle tri or based on the circumcenter of tri; default is \(M=(1,1,1)\) i.e., the center of mass of tri. Vertices of tri are also labeled as 1, 2, and 3, respectively.

If pt is not in S and either pt or all points in S are outside tri, it returns 0, but if pt is in S, then it always returns 1 regardless of its location (i.e., loops are allowed).

Usage

IndNPEtriSet(S, pt, r, tri, M = c(1, 1, 1))

Arguments

S

A set of 2D points. Presence of an arc from a point in S to point pt is checked by the function.

pt

A 2D point. Presence of an arc from a point in S to point pt is checked by the function.

r

A positive real number which serves as the expansion parameter in PE proximity region constructed in the triangle tri; must be \(\ge 1\).

tri

Three 2D points, stacked row-wise, each row representing a vertex of the triangle.

M

A 2D point in Cartesian coordinates or a 3D point in barycentric coordinates which serves as a center in the interior of the triangle tri or the circumcenter of tri; default is \(M=(1,1,1)\) i.e., the center of mass of tri.

Value

I(pt is in U_x in S N_PE(x,r)), that is, returns 1 if pt is in S or inside \(N_{PE}(x,r)\) for at least one \(x\) in S, returns 0 otherwise where PE proximity region is constructed with respect to the triangle tri

See Also

IndNPETeSet, IndNPEtri, IndNPETe, IndNAStriSet, and IndNCStriSet

Examples

Run this code
# NOT RUN {
A<-c(1,1); B<-c(2,0); C<-c(1.5,2);
Tr<-rbind(A,B,C);
n<-10

set.seed(1)
dat<-runif.tri(n,Tr)$gen.points

M<-as.numeric(runif.tri(1,Tr)$g)  #try also M<-c(1.6,1.0)

r<-1.5

S<-rbind(dat[1,],dat[2,])  #try also S<-c(1.5,1)

IndNPEtriSet(S,dat[3,],r,Tr,M)
IndNPEtriSet(S,dat[3,],r=1,Tr,M)
IndNPEtriSet(S,dat[3,],r=1.5,Tr,M)

S<-rbind(dat[1,],dat[2,],dat[3,],dat[5,])
IndNPEtriSet(S,dat[3,],r,Tr,M)

IndNPEtriSet(S,dat[6,],r,Tr,M)
IndNPEtriSet(S,dat[6,],r=1.25,Tr,M)

S<-rbind(c(.1,.1),c(.3,.4),c(.5,.3))
IndNPEtriSet(S,dat[3,],r,Tr,M)

IndNPEtriSet(c(.2,.5),dat[2,],r,Tr,M)
IndNPEtriSet(dat,c(.2,.5),r,Tr,M)
IndNPEtriSet(dat,dat[2,],r,Tr,M)
IndNPEtriSet(c(.2,.5),c(.2,.5),r,Tr,M)
IndNPEtriSet(dat[5,],dat[2,],r,Tr,M)

S<-rbind(dat[1,],dat[2,],dat[3,],dat[5,],c(.2,.5))
IndNPEtriSet(S,dat[3,],r,Tr,M)

P<-c(.4,.2)
S<-dat[c(1,3,4),]
IndNPEtriSet(dat,P,r,Tr,M)

IndNPEtriSet(rbind(S,S),P,r,Tr,M)

dat.fr<-data.frame(a=S)
IndNPEtriSet(dat.fr,P,r,Tr,M)

# }

Run the code above in your browser using DataLab