Interpolating points in an irregular 3D Shape

1 view (last 30 days)
I have a set of cartesian coordinates (X,Y,Z) that were produced to define the reachable work surface of a mechanical arm.
In order to find the reachable work surface and volume I have been using the alphaShape function in MATLAB unfortunately this either over estimates the work surface as the alpha radius is too high (figure 1). This is shown in the results with a surface area being calculated in a medial direction, with the joint centre at 0,0,0 resulting in an over estimation of surface area as the mechanical arm can not move through that space due to apparatus that fixes it to the floor, see Figure 3. AlphaShape also underestimates the work surface when I reduce the alpha radius (Figure2), and a combination of the overestimation and under estimation when the alpha radius is in-between.
I would like to add an arbitrary amount of uniformly positioned set of points at the surface edge of the shape, so if I were to chose a small alpha radius I would end up with a more accurate representation of the shape.
I have increased the amount of data point using the interpl function in MATLAB, but as these points were interpolated between already known coordinates it did not help.
Does anyone know a way to produce a uniformly positioned set of 3D points at the surface edge of the shape so a lower alphaShape radius can be used to define the overall surface area more accurately?

Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!