## ---- eval=FALSE--------------------------------------------------------------
#  
#  library(packcircles)
#  library(ggplot2)
#  
#  ## List of tangencies. Vector elements are circle IDs.
#  ## The first element in each vector is an internal circle
#  ## and the subsequent elements are its neighbours.
#  internal <- list(
#    c(9, 4, 5, 6, 10, 11),
#    c(5, 4, 8, 6, 9),
#    c(8, 3, 2, 7, 6, 5, 4),
#    c(7, 8, 2, 1, 6)
#  )
#  
#  ## Specification of external circle radii.
#  external <- data.frame(id = c(1, 2, 3, 4, 6, 10, 11), radius=10.0)
#  
#  ## The circleGraphLayout function is used to find an arrangement
#  ## of circles corresponding to the tangencies specified by `internal`
#  ## and the external circle sizes specified by `external`. The
#  ## result is a four-column data.frame: id, x, y, radius.
#  ##
#  layout <- circleGraphLayout(internal, external)
#  
#  ## Get data for circle vertices.
#  plotdat <- circleLayoutVertices(layout, xysizecols = 2:4, idcol = 1)
#  
#  ## Draw circles annotated with their IDs.
#  ggplot() +
#    geom_polygon(data=plotdat, aes(x, y, group=id),
#                 fill=NA, colour="black") +
#  
#    geom_text(data=layout, aes(x, y, label=id)) +
#  
#    coord_equal() +
#  
#    theme_bw()
#  

