| funsCSEdgeRegs | R Documentation |
Three indicator functions: IarcCSstd.triRAB, IarcCSstd.triRBC and IarcCSstd.triRAC.
The function IarcCSstd.triRAB returns I(p2 is in N_{CS}(p1,t) for p1 in RAB (edge region for edge AB,
i.e., edge 3) in the standard equilateral triangle T_e=T(A,B,C)=T((0,0),(1,0),(1/2,\sqrt{3}/2));
IarcCSstd.triRBC returns I(p2 is in N_{CS}(p1,t) for p1 in RBC (edge region for edge BC, i.e., edge 1) in T_e;
and
IarcCSstd.triRAC returns I(p2 is in N_{CS}(p1,t) for p1 in RAC (edge region for edge AC, i.e., edge 2) in T_e.
That is, each function returns 1 if p2 is in N_{CS}(p1,t), returns 0 otherwise.
CS proximity region is defined with respect to T_e whose vertices are also labeled as T_e=T(v=1,v=2,v=3)
with expansion parameter t>0 and edge 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
If p1 and p2 are distinct and p1 is outside the corresponding edge region and p2 is outside T_e, it returns 0,
but if they are identical, then it returns 1 regardless of their location (i.e., it allows loops).
See also (\insertCiteceyhan:Phd-thesis,ceyhan:comp-geo-2010;textualpcds).
IarcCSstd.triRAB(p1, p2, t, M)
IarcCSstd.triRBC(p1, p2, t, M)
IarcCSstd.triRAC(p1, p2, t, M)
p1 |
A 2D point whose CS proximity region is constructed. |
p2 |
A 2D point. The function determines whether |
t |
A positive real number which serves as the expansion parameter in CS proximity region. |
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 |
Each function returns I(p2 is in N_{CS}(p1,t)) for p1, that is, returns 1 if p2 is in N_{CS}(p1,t),
returns 0 otherwise
Elvan Ceyhan
IarcCSt1.std.triRAB, IarcCSt1.std.triRBC and IarcCSt1.std.triRAC
#Examples for IarcCSstd.triRAB
A<-c(0,0); B<-c(1,0); C<-c(1/2,sqrt(3)/2);
CM<-(A+B+C)/3
T3<-rbind(A,B,CM);
set.seed(1)
Xp<-runif.std.tri(3)$gen.points
M<-as.numeric(runif.std.tri(1)$g) #try also M<-c(.6,.2)
t<-1
IarcCSstd.triRAB(Xp[1,],Xp[2,],t,M)
IarcCSstd.triRAB(c(.2,.5),Xp[2,],t,M)
#Examples for IarcCSstd.triRBC
A<-c(0,0); B<-c(1,0); C<-c(1/2,sqrt(3)/2);
CM<-(A+B+C)/3
T1<-rbind(B,C,CM);
set.seed(1)
Xp<-runif.std.tri(3)$gen.points
M<-as.numeric(runif.std.tri(1)$g) #try also M<-c(.6,.2)
t<-1
IarcCSstd.triRBC(Xp[1,],Xp[2,],t,M)
IarcCSstd.triRBC(c(.2,.5),Xp[2,],t,M)
#Examples for IarcCSstd.triRAC
A<-c(0,0); B<-c(1,0); C<-c(1/2,sqrt(3)/2);
CM<-(A+B+C)/3
T2<-rbind(A,C,CM);
set.seed(1)
Xp<-runif.std.tri(3)$gen.points
M<-as.numeric(runif.std.tri(1)$g) #try also M<-c(.6,.2)
t<-1
IarcCSstd.triRAC(Xp[1,],Xp[2,],t,M)
IarcCSstd.triRAC(c(.2,.5),Xp[2,],t,M)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.