x <- runif(20)
y <- runif(20)
z <- deldir(x,y,rw=c(0,1,0,1))
w <- tile.list(z)
p1 <- tilePerim(w)
p0 <- tilePerim(w,inclbdry=FALSE)
p1$totalPerim - p0$totalPerim # Get 4 = the perimeter of rw.
ss <- apply(as.matrix(z$dirsgs[,1:4]),1,
function(x){(x[1]-x[3])^2 + (x[2]-x[4])^2})
2*sum(sqrt(ss)) - p0$totalPerim # Get 0; in tilePerim() each interior
# edge is counted twice.
if(require(polyclip)) {
CP <- list(x=c(0.49,0.35,0.15,0.20,0.35,0.42,
0.43,0.62,0.46,0.63,0.82,0.79),
y=c(0.78,0.86,0.79,0.54,0.58,0.70,
0.51,0.46,0.31,0.20,0.37,0.54))
wc <- tile.list(z,clipp=CP)
p2 <- tilePerim(wc) # Doesn't matter here if inclbdry is TRUE or FALSE.
p2$perComps[["pt.6"]] # The tile for point 6 has got subdivided into
# two parts, a tetrahedron and a triangle.
cul <- rainbow(10)[c(1,7,3:6,2,8:10)] # Rearranging colours to improve
# the contrast between contiguous tiles.
plot(wc,labelPts=TRUE,fillcol=cul)
}
Run the code above in your browser using DataLab