Learn R Programming

pcds (version 0.1.2)

IndNAStriSet: The indicator for the presence of an arc from a point in set S to the point pt for Arc Slice Proximity Catch Digraphs (AS-PCDs) - one triangle case

Description

Returns I(\(pt \in N_{AS}(x)\) for some \(x \in S\)), that is, returns 1 if \(pt\) is in \(\cup_{x \in S}N_{AS}(x)\), returns 0 otherwise, where \(N_{AS}(x)\) is the AS proximity region for point \(x\).

AS proximity regions are constructed with respect to the triangle, tri\(=T(A,B,C)=\)(rv=1,rv=2,rv=3), and vertices of tri are also labeled as 1,2, and 3, respectively.

Vertex regions are based on the center M="CC" for circumcenter of tri; or \(M=(m_1,m_2)\) in Cartesian coordinates or \(M=(\alpha,\beta,\gamma)\) in barycentric coordinates in the interior of the triangle tri; default is M="CC" i.e., circumcenter of tri.

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 (i.e., loops are allowed).

See also (ceyhan:Phd-thesis,ceyhan:comp-geo-2010,ceyhan:mcap2012;textualpcds).

Usage

IndNAStriSet(S, pt, tri, M = "CC")

Arguments

S

A set of 2D points whose AS proximity regions are considered.

pt

A 2D point. The function determines whether pt is inside the union of AS proximity regions of points in S or not.

tri

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

M

The center of the triangle. "CC" stands for circumcenter of the triangle tri or a 2D point in Cartesian coordinates or a 3D point in barycentric coordinates which serves as a center in the interior of tri; default is M="CC" i.e., the circumcenter of tri.

Value

\(I(pt \in \cup_{x in S}N_{AS}(x,r))\), that is, returns 1 if pt is in S or inside \(N_{AS}(x)\) for at least one \(x\) in S, returns 0 otherwise, where AS proximity region is constructed in tri

References

See Also

IndNAStri, 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

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

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

IndNAStriSet(S,dat[3,],Tr,M)

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

IndNAStriSet(S,dat[6,],Tr,M)

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

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

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

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

IndNAStriSet(rbind(S,S),P,Tr,M)

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

# }

Run the code above in your browser using DataLab