rel.edge.std.triCM {pcds} | R Documentation |
The index of the edge region in the standard equilateral triangle that contains a point
Description
Returns the index of the edge
whose region contains point, p
, in
the standard equilateral triangle
T_e=T(A=(0,0),B=(1,0),C=(1/2,\sqrt{3}/2))
with edge regions based on
center of mass CM=(A+B+C)/3
.
Edges are labeled as 3 for edge AB
,
1 for edge BC
,
and 2 for edge AC
.
If the point, p
, is not inside tri
,
then the function yields NA
as output.
Edge region 1 is the triangle T(B,C,M)
,
edge region 2 is T(A,C,M)
,
and edge region 3 is T(A,B,M)
.
See also (Ceyhan (2005, 2010); Ceyhan et al. (2007)).
Usage
rel.edge.std.triCM(p)
Arguments
p |
A 2D point for which |
Value
A list
with three elements
re |
Index of the |
tri |
The vertices of the standard equilateral triangle |
desc |
Description of the edge labels |
Author(s)
Elvan Ceyhan
References
Ceyhan E (2005).
An Investigation of Proximity Catch Digraphs in Delaunay Tessellations, also available as technical monograph titled Proximity Catch Digraphs: Auxiliary Tools, Properties, and Applications.
Ph.D. thesis, The Johns Hopkins University, Baltimore, MD, 21218.
Ceyhan E (2010).
“Extension of One-Dimensional Proximity Regions to Higher Dimensions.”
Computational Geometry: Theory and Applications, 43(9), 721-748.
Ceyhan E (2012).
“An investigation of new graph invariants related to the domination number of random proximity catch digraphs.”
Methodology and Computing in Applied Probability, 14(2), 299-334.
Ceyhan E, Priebe CE, Marchette DJ (2007).
“A new family of random graphs for testing spatial segregation.”
Canadian Journal of Statistics, 35(1), 27-50.
See Also
rel.edge.triCM
, rel.edge.tri
,
rel.edge.basic.triCM
, rel.edge.basic.tri
,
and edge.reg.triCM
Examples
P<-c(.4,.2)
rel.edge.std.triCM(P)
A<-c(0,0); B<-c(1,0); C<-c(0.5,sqrt(3)/2);
Te<-rbind(A,B,C)
D1<-(B+C)/2; D2<-(A+C)/2; D3<-(A+B)/2;
CM<-(A+B+C)/3
n<-20 #try also n<-40
Xp<-runif.std.tri(n)$gen.points
re<-vector()
for (i in 1:n)
re<-c(re,rel.edge.std.triCM(Xp[i,])$re)
re
Xlim<-range(Te[,1],Xp[,1])
Ylim<-range(Te[,2],Xp[,2])
xd<-Xlim[2]-Xlim[1]
yd<-Ylim[2]-Ylim[1]
plot(Te,asp=1,xlab="",ylab="",axes=TRUE,pch=".",xlim=Xlim+xd*c(-.01,.01),ylim=Ylim+yd*c(-.01,.01))
points(Xp,pch=".")
polygon(Te)
L<-Te; R<-matrix(rep(CM,3),ncol=2,byrow=TRUE)
segments(L[,1], L[,2], R[,1], R[,2], lty = 2)
text(Xp,labels=factor(re))
txt<-rbind(Te,CM)
xc<-txt[,1]+c(-.03,.03,.03,-.06)
yc<-txt[,2]+c(.02,.02,.02,.03)
txt.str<-c("A","B","C","CM")
text(xc,yc,txt.str)
p1<-(A+B+CM)/3
p2<-(B+C+CM)/3
p3<-(A+C+CM)/3
plot(Te,xlab="",ylab="",axes=TRUE,pch=".",xlim=Xlim+xd*c(-.01,.01),ylim=Ylim+yd*c(-.01,.01))
polygon(Te)
L<-Te; R<-matrix(rep(CM,3),ncol=2,byrow=TRUE)
segments(L[,1], L[,2], R[,1], R[,2], lty = 2)
txt<-rbind(Te,CM,p1,p2,p3)
xc<-txt[,1]+c(-.03,.03,.03,-.06,0,0,0)
yc<-txt[,2]+c(.02,.02,.02,.03,0,0,0)
txt.str<-c("A","B","C","CM","re=3","re=1","re=2")
text(xc,yc,txt.str)