Learn R Programming

pcds (version 0.1.2)

IndNASbastri: The indicator for the presence of an arc from a point to another for Arc Slice Proximity Catch Digraphs (AS-PCDs) - basic triangle case

Description

Returns \(I(pt2 \in N_{AS}(pt1))\) for points pt1 and pt2, that is, returns 1 if \(pt2\) is in \(N_{AS}(pt1)\), returns 0 otherwise, where \(N_{AS}(x)\) is the AS proximity region for point \(x\).

AS proximity region is constructed in the basic triangle \(T_b=T((0,0),(1,0),(c_1,c_2))\) where \(c_1\) is in \([0,1/2]\), \(c_2>0\) and \((1-c_1)^2+c_2^2 \le 1\).

Vertex regions are based on the center M="CC" for circumcenter of \(T_b\); or \(M=(m_1,m_2)\) in Cartesian coordinates or \(M=(\alpha,\beta,\gamma)\) in barycentric coordinates in the interior of \(T_b\); default is M="CC" i.e., circumcenter of \(T_b\). rv is the index of the vertex region pt1 resides, with default=NULL.

If pt1 and pt2 are distinct and either of them are outside \(T_b\), the function returns 0, but if they are identical, then it returns 1 regardless of their locations (i.e., it allows loops).

Any given triangle can be mapped to the basic triangle by a combination of rigid body motions (i.e., translation, rotation and reflection) and scaling, preserving uniformity of the points in the original triangle. Hence basic triangle is useful for simulation studies under the uniformity hypothesis.

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

Usage

IndNASbastri(pt1, pt2, c1, c2, M = "CC", rv = NULL)

Arguments

pt1

A 2D point whose AS proximity region is constructed.

pt2

A 2D point. The function determines whether pt2 is inside the AS proximity region of pt1 or not.

c1, c2

Positive real numbers representing the top vertex in basic triangle \(T_b=T((0,0),(1,0),(c_1,c_2))\), \(c_1\) must be in \([0,1/2]\), \(c_2>0\) and \((1-c_1)^2+c_2^2 \le 1\).

M

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

rv

The index of the M-vertex region in \(T_b\) containing the point, either 1,2,3 or NULL (default is NULL).

Value

\(I(pt2 \in N_{AS}(pt1))\) for points pt1 and pt2, that is, returns 1 if \(pt2\) is in \(N_{AS}(pt1)\) (i.e., if there is an arc from pt1 to pt2), returns 0 otherwise.

References

See Also

IndNAStri and NAStri

Examples

Run this code
# NOT RUN {
c1<-.4; c2<-.6;
A<-c(0,0); B<-c(1,0); C<-c(c1,c2);
Tb<-rbind(A,B,C)

M<-as.numeric(runif.bastri(1,c1,c2)$g)  #try also M<-c(.6,.2)

P1<-as.numeric(runif.bastri(1,c1,c2)$g)
P2<-as.numeric(runif.bastri(1,c1,c2)$g)
IndNASbastri(P1,P2,c1,c2,M)

P1<-c(.3,.2)
P2<-c(.6,.2)
IndNASbastri(P1,P2,c1,c2,M)

#or try
Rv<-rv.bastriCC(P1,c1,c2)$rv
IndNASbastri(P1,P2,c1,c2,M,Rv)

P1<-c(.3,.2)
P2<-c(.8,.2)
IndNASbastri(P1,P2,c1,c2,M)

P3<-c(.5,.4)
IndNASbastri(P1,P3,c1,c2,M)

P4<-c(1.5,.4)
IndNASbastri(P1,P4,c1,c2,M)
IndNASbastri(P4,P4,c1,c2,M)

c1<-.4; c2<-.6;
P1<-c(.3,.2)
P2<-c(.6,.2)
IndNASbastri(P1,P2,c1,c2,M)

# }

Run the code above in your browser using DataLab