sphere_delaunay
    
    
    
      sphere_delaunay,
      an Octave code which
      computes the Delaunay triangulation of points on the unit sphere.
    
    
      According to Steven Fortune, it is possible to compute the Delaunay triangulation
      of points on a sphere by computing their convex hull.  If the sphere is the unit
      sphere at the origin, the facet normals are the Voronoi vertices.
    
    
      sphere_delaunay() uses this approach, by calling the convhulln()
      function to generate the convex hull.  The information defining the convex hull
      is actually the desired triangulation of the points.  Since this computation
      is so easy, other parts of the program are designed to analyze the resulting
      Delaunay triangulation and return other information, such as the areas of the
      triangles and so on.
    
    
      Licensing:
    
    
      The information on this web page is distributed under the MIT license.
    
    
      Languages:
    
    
      sphere_delaunay is available in
      a Fortran90 version and
      a MATLAB version and
      an Octave version.
    
    
      Related Data and Programs:
    
    
      
      sphere_delaunay_test
    
    
      
      geometry,
      an Octave code which
      computes various geometric quantities, including grids on spheres.
    
    
      
      sphere_cvt,
      an Octave code which
      creates a mesh of well-separated points on a unit sphere by applying the
      centroidal voronoi tessellation (cvt) iteration.
    
    
      
      sphere_grid,
      an Octave code which
      provides a number of ways of generating grids of points, or of
      points and lines, or of points and lines and faces, over the unit sphere.
    
    
      
      sphere_voronoi,
      an Octave code which
      computes the voronoi diagram of points on a sphere.
    
    
      Reference:
    
    
      
        - 
          Jacob Goodman, Joseph ORourke, editors,
          Handbook of Discrete and Computational Geometry,
          Second Edition,
          CRC/Chapman and Hall, 2004,
          ISBN: 1-58488-301-4,
          LC: QA167.H36.
         
        - 
          Robert Renka,
          Algorithm 772: 
          STRIPACK:
          Delaunay Triangulation and Voronoi Diagram on the Surface
          of a Sphere,
          ACM Transactions on Mathematical Software,
          Volume 23, Number 3, September 1997, pages 416-434.
         
      
    
    
      Source Code:
    
    
      
        - 
          atan4.m,
          computes the inverse tangent;
        
 
        - 
          i4col_compare.m,
          compares two columns of an I4COL;
        
 
        - 
          i4col_sort_a.m,
          ascending sorts the columns of an I4COL;
        
 
        - 
          
          i4col_swap.m,
          swaps two columns of an I4COL;
        
 
        - 
          i4mat_transpose_print.m,
          prints an I4MAT, transposed;
        
 
        - 
          
          i4mat_transpose_print_some.m,
          prints some of an I4MAT, transposed;
        
 
        - 
          icos_shape.m,
          returns the shape of an icosahedron.
        
 
        - 
          icos_size.m,
          returns size information for an icosahedron.
        
 
        - 
          r8mat_transpose_print.m,
          prints the transpose of an R8MAT;
        
 
        - 
          
          r8mat_transpose_print_some.m,
          prints some of the transpose of an R8MAT;
        
 
        - 
          r8mat_uniform_01.m,
          returns a unit pseudorandom R8MAT;
        
 
        - 
          r8vec_normal_01.m,
          returns unit pseudonormal R8VEC.
        
 
        - 
          r8vec_polarize.m,
          decomposes an R8VEC into normal and parallel components;
        
 
        - 
          r8vec_print.m,
          prints an R8VEC.
        
 
        - 
          r8vec_uniform_01.m,
          returns a unit pseudorandom R8VEC.
        
 
        - 
          sort_heap_external.m,
          external sorts a list of values into ascending order;
        
 
        - 
          
          sphere_delaunay.m,
          returns the Delaunay triangulation of points on the unit sphere.
        
 
        - 
          
          sphere_grid_icos_size.m,
          returns size information for an icosahedral grid on the sphere.
        
 
        - 
          
          sphere_gridpoints_icos2.m,
          returnspoints of an icosahedral grid on the sphere.
        
 
        - 
          
          stri_angles_to_area.m,
          computes the area of a spherical triangle;
        
 
        - 
          
          stri_sides_to_angles.m,
          computes the angles of a spherical triangle from its sides;
        
 
        - 
          
          stri_vertices_to_area.m,
          computes the area of a spherical triangle from its vertices;
        
 
        - 
          
          stri_vertices_to_sides.m,
          computes the sides of a spherical triangle from its sides;
        
 
        - 
          
          triangulation_neighhbor_triangles.m,
          determines triangle neighbors in a triangulation;
        
 
        - 
          
          uniform_on_sphere01_map.m,
          returns uniform random points on the unit sphere.
        
 
      
    
    
    
      Last revised on 10 May 2023.