Group Abstract Group Abstract

Message Boards Message Boards

1
|
7.1K Views
|
8 Replies
|
2 Total Likes
View groups...
Share
Share this post:

Built-in symbols and functions for numerical 3D geometry?

Posted 4 years ago

I have numerical data for 3D surfaces that I wish to mutually crop; i.e. crop the front and back with the left, right, top, and bottom - and similarly for the other 2 permutations. Afterwards, I will join these to make the surface of a volume. And later, I'll want to take unions and intersections of these volume surfaces.

What Built-in or supported-package symbols and functions can I use instead of writing my own package?

Here is some example low-resolution data:

(* Coordinate #1 is vertical, #2 is left to right, #3 is front to \
rear. *)
surfacenames = {"front", "back", "left", "right", "bottom", "top"};
lowressurfaces = {{{0., -0.7929, -1.1203}, {0., 0.0713, -1.1203}, {0.,
      0.9355, -1.1203}, {0.5, -0.7929, -0.7892}, {0.5, 
     0.0713, -0.7836}, {0.5, 
     0.9355, -1.1203}, {1., -0.7929, -0.4353}, {1., 
     0.0713, -1.1203}, {1., 0.9355, 0.027200}}, {{0., -0.7929, 
     0.8793}, {0., 0.0713, 0.8793}, {0., 0.9355, 
     0.8793}, {0.5, -0.7929, 0.5014}, {0.5, 0.0713, 0.8627}, {0.5, 
     0.9355, 0.7277}, {1., -0.7929, 0.9339}, {1., 0.0713, 
     0.9339}, {1., 0.9355, 
     0.9339}}, {{0., -0.7915, -1.1203}, {0., -0.7915, -0.0932}, {0., \
-0.7915, 0.9339}, {0.5, -0.7929, -1.1203}, {0.5, -0.7929, -0.0932}, \
{0.5, -0.7929, 
     0.9339}, {1., -0.5625, -1.1203}, {1., -0.7707, -0.0932}, {1., \
-0.7929, 0.9339}}, {{0., 0.9355, -1.1203}, {0., 0.9355, -0.0932}, {0.,
      0.9355, 0.9339}, {0.5, 0.9355, -1.1203}, {0.5, 
     0.9355, -0.0932}, {0.5, 0.9277, 0.9339}, {1., 
     0.9355, -1.1203}, {1., 0.9355, -0.0932}, {1., 0.9355, 
     0.9339}}, {{0., -0.7929, -1.1203}, {0., -0.7929, -0.0932}, {0., \
-0.7929, 0.9339}, {0., 0.0713, -1.1203}, {0., 0.0713, -0.0932}, {0., 
     0.0713, 0.9339}, {0., 0.9355, -1.1203}, {0., 
     0.9355, -0.0932}, {0., 0.9355, 
     0.9339}}, {{0.8992, -0.7929, -1.1203}, {0.9730, -0.7929, \
-0.0932}, {1., -0.7929, 0.9339}, {0.9860, 0.0713, -1.1203}, {1., 
     0.0713, -0.0932}, {1., 0.0713, 0.9339}, {1., 
     0.9355, -1.1203}, {1., 0.9355, -0.0932}, {1., 0.9355, 0.9339}}};
POSTED BY: Richard Frost
8 Replies

POSTED BY: Richard Frost

This procedure turns a plot into a Polyhedron object:

pl = ListPlot3D[lowressurfaces[[2]], Mesh -> All];
cmplx = Cases[pl, _GraphicsComplex, All][[1]];
polhdr = Polyhedron[cmplx[[1]], 
  Cases[cmplx, Polygon[pts_] :> pts, All][[1]]]
POSTED BY: Gianluca Gorni

POSTED BY: Richard Frost
POSTED BY: Gianluca Gorni
POSTED BY: Richard Frost

Here's another look at the surfaces in medium resolution:

POSTED BY: Richard Frost
POSTED BY: Adam Mendenhall
POSTED BY: Richard Frost
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard