User Tools

Site Tools


en:customized_functions:orglhull

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

en:customized_functions:orglhull [2016/06/28 16:29]
127.0.0.1 external edit
en:customized_functions:orglhull [2017/10/11 20:36]
Line 1: Line 1:
-====== orglhull ====== 
-**Authors: David Zelený, fix for R version 2.15.0 introduced by Paolo Piras.** 
  
-Function used  for drawing convexhull around groups of samples in 3D ordination diagrams, as a supplementary to functions ''​ordirgl'' ​ and ''​orglspider''​ from ''​library (vegan3d)''​ 
- 
- 
- 
-<code r orglhull.r>​ 
-orglhull <- function (object, groups, display = '​sites',​ choices = 1:3, show.groups = NULL,  ...) 
-{ 
-require (geometry, quietly = T) 
-require (rgl, quietly = T) 
-pts <- scores (object, choices = choices, display = display, ...) 
-if (!is.null(show.groups)) 
-{take <- groups %in% show.groups 
-  pts <- pts[take, , drop = FALSE] 
-  groups <- groups[take]} 
-out <- seq (along = groups) 
-inds <- names (table (groups)) 
-for (is in inds) 
-  { 
-  gr <- out[groups == is] 
-  if (length (gr) == 2) 
-    { 
-    X <- pts[gr,] 
-    rgl.lines (X[,1], X[,2], X[,3], lwd = 2, ...) 
-    } 
- 
-  if (length (gr) == 3) 
-    { 
-    X <- pts[gr,] 
-    rgl.triangles (X[,1], X[,2], X[,3], ...)  ​ 
-    } 
-  if (length (gr) > 3) 
-    { 
-    X <- pts[gr,] 
-    # check if the points are not situated in hyperplane 
-      bas.matrix <- X[1:3,] 
-      D <- det (bas.matrix) 
-      d <- 1 
-      bas.matrix.a <- bas.matrix 
-      bas.matrix.a[,​1] <- 1 
-      a <- -d/D*det (bas.matrix.a) 
-      ​ 
-      bas.matrix.b <- bas.matrix 
-      bas.matrix.b[,​2] <- 1 
-      b <- -d/D*det (bas.matrix.b) 
-      ​ 
-      bas.matrix.c <- bas.matrix 
-      bas.matrix.c[,​3] <- 1 
-      c <- -d/D*det (bas.matrix.c) 
-      kolik <- a*X[,​1]+b*X[,​2]+c*X[,​3] + d      ​ 
-      save (X, file = '​X.r'​) 
-      if (all (abs (kolik) <=  1e-10)) X <- X + runif (length (X), min = -1e-5, max = 1e-5) 
- 
-    tr <-  t (convhulln (X,"​FA"​)$hull) 
-    print (tr) 
-    rgl.triangles (X[tr,1], X[tr,2], X[tr,3], ...) 
-    } 
-   } 
-   ​invisible () 
-} 
-  
-</​code>​ 
en/customized_functions/orglhull.txt · Last modified: 2017/10/11 20:36 (external edit)