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