I rendered your data points as spheres using GR and GR3, to get an idea of
what you are dealing with. They seem to show a curve, rather than a
surface, though. Is the 'kidney bean' meant to be this elongated or am I
interpreting your data in a wrong way?
In general, you might try using a Ball Pivoting algorithm for surface
reconstruction. The ball radius parameter allows you to pick how much
concavity you allow, with an infinite radius yielding the convex hull.
Here's the script for rendering the spheres and I'll attach a screenshot
from it.
using JLD
using GR
using GR.GR3
points = load("testpts.jld")["pts"]
center = mean(points, 1)
scaling_factor = 1 / maximum([maximum(points[:, i])-minimum(points[:, i])
for i in 1:3])
for i in 1:3
points[:, i] = (points[:, i]-center[i]) * scaling_factor
end
positions = vec(points')
colors = ones(positions)
radii = 0.01*ones(size(points, 1))
GR3.drawspheremesh(size(points, 1), positions, colors, radii)
GR.setviewport(0, 1, 0, 1)
for i in 1:400
GR.clearws()
GR3.cameralookat(2*sin(2π*i/200), 0, 2*cos(2π*i/200), 0, 0, 0, 0, 1, 0)
GR3.drawimage(0, 1, 0, 1, 500, 500, GR3.DRAWABLE_GKS)
GR.updatews()
end
Am Mittwoch, 20. April 2016 22:52:24 UTC+2 schrieb Chris:
>
> I've attached a sample dataset. It's a set of 500 x,y,z points. I still
> haven't been able to make much headway on this, so if someone could take
> the time to show me what's possible, I'd be very appreciative.
>
> On Monday, February 22, 2016 at 3:55:14 PM UTC-5, Chris wrote:
>>
>> I will work on creating a small sample dataset, but the shape is
>> essentially a "kidney bean" in 3D space. In fact, the actual "point cloud"
>> is (right now) actually samples from a 3D probability density function,
>> i.e. it's a "blob", and I want the 3D bounding surface of that blob. I
>> imagine this makes things more difficult (at least computationally), and so
>> I'm thinking of ways to go from "blob" to the "convex hull" of this point
>> cloud -- even though convex hull isn't exactly what I want, since there is
>> some concavity.
>>
>> On Saturday, February 20, 2016 at 8:05:44 PM UTC-5, Steve Kelly wrote:
>>>
>>> Do you have a sample dataset? The algorithms for triangulating a signed
>>> distance field can be found in Meshing.jl. I implemented Marching Cubes
>>> recently and started Marching Squares today, but have yet to tag a release
>>> because I need to settle on an API.
>>>
>>> I currently am working on solid modeling via implicit functions. More
>>> generally I work in digital fabrication (Fab Lab) and would love to have 3D
>>> scanning in the Julia workflow. If you can share more about the dataset you
>>> have, I'll see if we can make it work with the tools we have available now.
>>> On Feb 19, 2016 2:36 AM, "Igor" <[email protected]> wrote:
>>>
>>>> Chris , I'm interested in this area too. Please post here if you come
>>>> up with some solution you would like.
>>>>
>>>> Best regards, Igor
>>>
>>>