IarcPEstd.tetra: The indicator for the presence of an arc from a point to...

View source: R/PropEdge3D.R

IarcPEstd.tetraR Documentation

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

Description

Returns I(p2 is in N_{PE}(p1,r)) for points p1 and p2, that is, returns 1 if p2 is in N_{PE}(p1,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 regular tetrahedron T_h=T(v=1,v=2,v=3,v=4)=T((0,0,0),(1,0,0),(1/2,\sqrt{3}/2,0),(1/2,\sqrt{3}/6,\sqrt{6}/3)) and vertex regions are based on the circumcenter (which is equivalent to the center of mass for standard regular tetrahedron) of T_h. rv is the index of the vertex region p1 resides, with default=NULL.

If p1 and p2 are distinct and either of them are outside T_h, it returns 0, but if they are identical, then it returns 1 regardless of their locations (i.e., it allows loops).

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

Usage

IarcPEstd.tetra(p1, p2, r, rv = NULL)

Arguments

p1

A 3D point whose PE proximity region is constructed.

p2

A 3D point. The function determines whether p2 is inside the PE proximity region of p1 or not.

r

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

rv

Index of the vertex region containing the point, either 1,2,3,4 (default is NULL).

Value

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

Author(s)

Elvan Ceyhan

References

\insertAllCited

See Also

IarcPEtetra, IarcPEtri and IarcPEint

Examples

## Not run: 
A<-c(0,0,0); B<-c(1,0,0); C<-c(1/2,sqrt(3)/2,0); D<-c(1/2,sqrt(3)/6,sqrt(6)/3)
tetra<-rbind(A,B,C,D)

n<-3  #try also n<-20
Xp<-runif.std.tetra(n)$g
r<-1.5
IarcPEstd.tetra(Xp[1,],Xp[3,],r)
IarcPEstd.tetra(c(.4,.4,.4),c(.5,.5,.5),r)

#or try
RV<-rel.vert.tetraCC(Xp[1,],tetra)$rv
IarcPEstd.tetra(Xp[1,],Xp[3,],r,rv=RV)

P1<-c(.1,.1,.1)
P2<-c(.5,.5,.5)
IarcPEstd.tetra(P1,P2,r)

## End(Not run)


elvanceyhan/pcds documentation built on June 29, 2023, 8:12 a.m.