Learn R Programming

pcds (version 0.1.4)

IndNPETe: The indicator for the presence of an arc from a point to another for Proportional Edge Proximity Catch Digraphs (PE-PCDs) - standard equilateral triangle case

Description

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

PE proximity region is defined with respect to the standard equilateral triangle \(T_e=T(v=1,v=2,v=3)=T((0,0),(1,0),(1/2,\sqrt{3}/2))\) 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 \(T_e\); default is \(M=(1,1,1)\) i.e., the center of mass of \(T_e\). 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_e\), it returns 0, but if they are identical, then it returns 1 regardless of their locations (i.e., it allows loops).

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

Usage

IndNPETe(pt1, pt2, r, M = c(1, 1, 1), rv = NULL)

Value

\(I(\)pt2 is in \(N_{PE}(pt1,r))\) for points pt1 and pt2, that is, returns 1 if pt2 is in \(N_{PE}(pt1,r)\), returns 0 otherwise

Arguments

pt1

A 2D point whose PE proximity region is constructed.

pt2

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

r

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

M

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

rv

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

Author

Elvan Ceyhan

References

See Also

IndNPEtri, IndNPEbastri, and IndCSTe

Examples

Run this code
A<-c(0,0); B<-c(1,0); C<-c(1/2,sqrt(3)/2);
Te<-rbind(A,B,C)
n<-10

set.seed(1)
dat<-runifTe(n)$gen.points

M<-as.numeric(runifTe(1)$g)  #try also M<-c(.6,.2)

IndNPETe(dat[1,],dat[10,],r=2,M)
IndNPETe(c(0,1),dat[10,],r=2,M)

IndNPETe(dat[1,],dat[10,],r=1.5,M)
IndNPETe(dat[1,],dat[5,],r=2,M)
IndNPETe(dat[1,],dat[5,],r=3,M)

IndNPETe(c(1,1),dat[5,],r=3,M)
IndNPETe(c(1,1),c(1,1),r=3,M)

#or try
Rv<-rvTeCM(dat[1,])$rv
IndNPETe(dat[1,],dat[10,],r=2,M,Rv)

P1<-c(.4,.2)
P2<-c(.5,.26)
r<-2
IndNPETe(P1,P2,r,M)

Run the code above in your browser using DataLab