Skip to main content
replaced http://mathematica.stackexchange.com/ with https://mathematica.stackexchange.com/
Source Link

You can use DelaunayMesh, RegionBoundary, and RegionMeasure

Points on a unit sphere for example data (Taken from:how to get $n$ equidistributed points on the unit spherehow to get $n$ equidistributed points on the unit sphere):

points = With[{points = 5000, samples = 40000, iterations = 20}, 
   Nest[With[{randoms = Join[#, RandomPoint[Sphere[], samples]]}, 
      Normalize@Mean@randoms[[#]] & /@ 
       Values@PositionIndex@Nearest[#, randoms]] &, 
    RandomPoint[Sphere[], points], iterations]];

Calculating volume and surface area:

ListContourPlot3D[points, Contours -> {0}]
object = DelaunayMesh[points];
objectSurface = RegionBoundary[object];

RegionMeasure[object, 3]
RegionMeasure[objectSurface, 2]

4.18349

12.5579

You can use DelaunayMesh, RegionBoundary, and RegionMeasure

Points on a unit sphere for example data (Taken from:how to get $n$ equidistributed points on the unit sphere):

points = With[{points = 5000, samples = 40000, iterations = 20}, 
   Nest[With[{randoms = Join[#, RandomPoint[Sphere[], samples]]}, 
      Normalize@Mean@randoms[[#]] & /@ 
       Values@PositionIndex@Nearest[#, randoms]] &, 
    RandomPoint[Sphere[], points], iterations]];

Calculating volume and surface area:

ListContourPlot3D[points, Contours -> {0}]
object = DelaunayMesh[points];
objectSurface = RegionBoundary[object];

RegionMeasure[object, 3]
RegionMeasure[objectSurface, 2]

4.18349

12.5579

You can use DelaunayMesh, RegionBoundary, and RegionMeasure

Points on a unit sphere for example data (Taken from:how to get $n$ equidistributed points on the unit sphere):

points = With[{points = 5000, samples = 40000, iterations = 20}, 
   Nest[With[{randoms = Join[#, RandomPoint[Sphere[], samples]]}, 
      Normalize@Mean@randoms[[#]] & /@ 
       Values@PositionIndex@Nearest[#, randoms]] &, 
    RandomPoint[Sphere[], points], iterations]];

Calculating volume and surface area:

ListContourPlot3D[points, Contours -> {0}]
object = DelaunayMesh[points];
objectSurface = RegionBoundary[object];

RegionMeasure[object, 3]
RegionMeasure[objectSurface, 2]

4.18349

12.5579

added 645 characters in body
Source Link
Young
  • 7.5k
  • 1
  • 22
  • 46

You can use DelaunayMesh, RegionBoundary, and RegionMeasure

Points on a unit sphere for example data (Taken from:how to get $n$ equidistributed points on the unit sphere):

ListContourPlot3D[points]points = With[{points = 5000, samples = 40000, iterations = 20}, 
RegionMeasure[DelaunayMesh[points]]   Nest[With[{randoms = Join[#, RandomPoint[Sphere[], samples]]}, 
      Normalize@Mean@randoms[[#]] & /@ 
       Values@PositionIndex@Nearest[#, randoms]] &, 
    RandomPoint[Sphere[], points], iterations]];

Calculating volume and surface area:

ListContourPlot3D[points, Contours -> {0}]
object = DelaunayMesh[points];
objectSurface = RegionBoundary[object];

RegionMeasure[object, 3]
RegionMeasure[objectSurface, 2]

4.18349

12.5579

You can use DelaunayMesh and RegionMeasure

ListContourPlot3D[points]
RegionMeasure[DelaunayMesh[points]]

You can use DelaunayMesh, RegionBoundary, and RegionMeasure

Points on a unit sphere for example data (Taken from:how to get $n$ equidistributed points on the unit sphere):

points = With[{points = 5000, samples = 40000, iterations = 20}, 
   Nest[With[{randoms = Join[#, RandomPoint[Sphere[], samples]]}, 
      Normalize@Mean@randoms[[#]] & /@ 
       Values@PositionIndex@Nearest[#, randoms]] &, 
    RandomPoint[Sphere[], points], iterations]];

Calculating volume and surface area:

ListContourPlot3D[points, Contours -> {0}]
object = DelaunayMesh[points];
objectSurface = RegionBoundary[object];

RegionMeasure[object, 3]
RegionMeasure[objectSurface, 2]

4.18349

12.5579

Source Link
Young
  • 7.5k
  • 1
  • 22
  • 46

You can use DelaunayMesh and RegionMeasure

ListContourPlot3D[points]
RegionMeasure[DelaunayMesh[points]]