Connected Components of an Undirected Graph

Provides a function for fast computation of the connected components of an undirected graph (though not faster than the components() function of the 'igraph' package) from the edges or the adjacency matrix of the graph. Based on this one, a function to compute the connected components of a triangle 'rgl' mesh is also provided.


concom

R-CMD-check

Fast computation of the connected components of an undirected graph.

f <- function(x, y, z, a, cosb, sinb){
    (sqrt((sqrt(x*x + (y*sinb + a*cosb)^2) - 2)^2) - 1)^2 +
      (sqrt((sqrt(z*z + (y*cosb - a*sinb)^2) - 2)^2) - 1)^2
}
a <- 0.6
b <- 0.785
cosb <- cos(b)
sinb <- sin(b)

x <- z <- seq(-3.5, 3.5, len = 150L)
y <- seq(-4.2, 4.2, len = 150L)
g <- expand.grid(X = x, Y = y, Z = z)
voxel <- array(
  with(g, f(X, Y, Z, a, cosb, sinb)),
  dim = c(150L, 150L, 150L)
)

library(rmarchingcubes)
contour_shape <- contour3d(
  griddata = voxel,
  level = 0.1,
  x = x,
  y = y,
  z = z
)

library(rgl)
tmesh <- tmesh3d(
  vertices = t(contour_shape[["vertices"]]),
  indices = t(contour_shape[["triangles"]]),
  normals = contour_shape[["normals"]],
  homogeneous = FALSE
)
open3d(windowRect = c(50, 50, 562, 562), zoom = 0.9)
shade3d(tmesh, color = "orangered")

library(concom)
meshes <- concom3d(tmesh)

colors <- hcl.colors(length(meshes))
open3d(windowRect = c(50, 50, 562, 562), zoom = 0.9)
for(i in 1L:length(meshes)){
  shade3d(meshes[[i]], color = colors[i])
}

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("concom")

1.0.0 by Stéphane Laurent, 4 years ago


https://github.com/stla/concom


Report a bug at https://github.com/stla/concom/issues


Browse source code at https://github.com/cran/concom


Authors: Stéphane Laurent [cre, aut]


Documentation:   PDF Manual  


GPL-3 license


Imports english, Rcpp, rgl, Rvcg

Suggests rmarchingcubes

Linking to BH, Rcpp


See at CRAN