A<-c(1,1); B<-c(2,0); C<-c(1.5,2);
Tr<-rbind(A,B,C);
n<-10
set.seed(1)
dat<-runif.tri(n,Tr)$g
M<-as.numeric(runif.tri(1,Tr)$g) #try also M<-c(1.6,1.2)
Gam1AStri(dat[1,],dat,Tr,M)
Gam1AStri(dat[1,],dat[1,],Tr,M)
Gam1AStri(c(1.5,1.5),c(1.6,1),Tr,M)
Gam1AStri(c(1.6,1),c(1.5,1.5),Tr,M)
gam.vec<-vector()
for (i in 1:n)
{gam.vec<-c(gam.vec,Gam1AStri(dat[i,],dat,Tr,M))}
ind.gam1<-which(gam.vec==1)
ind.gam1
#or try
Rv<-rv.triCC(dat[1,],Tr)$rv
Gam1AStri(dat[1,],dat,Tr,M,Rv)
Gam1AStri(c(.2,.4),dat,Tr,M)
Gam1AStri(c(.2,.4),c(.2,.4),Tr,M)
dat2<-rbind(dat,c(.2,.4))
Gam1AStri(dat[1,],dat2,Tr,M)
if (dimension(M)==3) {M<-bary2cart(M,Tr)}
#need to run this when M is given in barycentric coordinates
CC<-circ.cent.tri(Tr) #the circumcenter
if (isTRUE(all.equal(M,CC)) || identical(M,"CC"))
{cent<-CC
D1<-(B+C)/2; D2<-(A+C)/2; D3<-(A+B)/2;
Ds<-rbind(D1,D2,D3)
cent.name<-"CC"
} else
{cent<-M
cent.name<-"M"
Ds<-cp2e.tri(Tr,M)
D1<-Ds[1,]; D2<-Ds[2,]; D3<-Ds[3,]
}
Xlim<-range(Tr[,1],dat[,1])
Ylim<-range(Tr[,2],dat[,2])
xd<-Xlim[2]-Xlim[1]
yd<-Ylim[2]-Ylim[1]
plot(A,pch=".",xlab="",ylab="",xlim=Xlim+xd*c(-.05,.05),ylim=Ylim+yd*c(-.05,.05))
polygon(Tr)
points(dat)
L<-rbind(cent,cent,cent); R<-Ds
segments(L[,1], L[,2], R[,1], R[,2], lty=2)
points(rbind(dat[ind.gam1,]),pch=4,col=2)
txt<-rbind(Tr,cent,Ds)
xc<-txt[,1]
yc<-txt[,2]
txt.str<-c("A","B","C",cent.name,"D1","D2","D3")
text(xc,yc,txt.str)
Gam1AStri(c(1.5,1.1),dat,Tr,M)
dat.fr<-data.frame(a=dat)
Gam1AStri(c(1.5,1.1),dat.fr,Tr,M)
dat.fr<-data.frame(a=Tr)
Gam1AStri(c(1.5,1.1),dat,dat.fr,M)
Gam1AStri(c(1.5,1.1),dat,Tr,M)
Gam1AStri(c(1.5,1.1),dat,Tr,M,ch.data.pnt=FALSE)
#gives an error message if ch.data.pnt=TRUE since point p is not a data point in Dt
Run the code above in your browser using DataLab