Random points on two "touching" unit spheres (i.e., radius=1) (1000 pts/sphere):
sphere2.py (Python script)
The surface area of a single unit sphere = 4*pi*r^2 = 12.5663706144
The goal of this page is to produce a triangulation of this point set that results in two spheres that intersect at a point.
Results of vtkDelaunay3D -- not what we're after...
scatSphDel.py (Python script)
Results of vtkSurfaceReconstructionFilter (--> vtkContourFilter (=0.0)) (vtkSurfaceReconstructionFilter is an implementation by Tim Hutton of Hugues Hoppe's research.
(scatSphRecon.py)
Notice the undesirable "wall" artifact produced by this algorithm for this
dataset. (However, this is expected since this dataset is not well-suited
for Hoppe's algorithm).
Using the hull program:
Using Alpha Shapes:
Power Crust algorithm (just using default parameters for the most part)
powercrust -m 100000 -s 9427 -i pts.2000
polyTri.py - Python script to read in pc.off output produced by powercrust, triangulate it, and compute surface area.
Computed (total) surfArea = 24.8593860606
clean.py - Python script to read in pc.off output produced by powercrust, triangulate it, clean it, decimate it, and compute surface area.
Computed (total) surfArea = 24.59468921
Top two each have R=0.8; bottom have R=1.0.
Actual surface area: 8.042*2 + 12.566*2 = 41.217
Computed surfArea = 40.7856982027
R=1.0, 0.8, 0.5
Actual surface area: ???
Computed surfArea = 47.064713984
Zoom in on smaller (intersecting) spheres.
(using default NeighborhoodSize and SampleSpacing: nb= 20
ss= 0.205118626356)
See this page for deformed bubbles using some computed data from Prof. John McLaughlin and Dongying Qian at Clarkson University.