Jump to content

How to draw the boundary(or maximum outline) of a point set?


zixuan203344

Recommended Posts

How to draw the boundary(or maximum outline) of a point set? Require all points to be on the outline or inside the outline

 

By looking up academic materials, it seems to be a concave hull algorithm。

 

concave hull

01.jpg

Link to comment
Share on other sites

Are your points like in the picture - spaced like grid and should boundary always be orthogonal like in your picture?

Link to comment
Share on other sites

Architecture has a command called "shrinkwrap" may not be in 2014 try it. I have used in CIV3d but for 3dfaces and works great. Will test points.

 

Ok did not work as its points and uses lines.

 

Take every point and draw a line to every other point, erase any line over root 2 1.1414 times the grid spacing, use lineworksshrinwrap, this will make a outer boundary pline put on another layer delete all the point joins lines. Note will only work with a grid.

Link to comment
Share on other sites

Thank you for your reply.

This is just a special case. Not all point spacing is equal. I want to find a general method.

Link to comment
Share on other sites

Architecture has a command called "shrinkwrap" may not be in 2014 try it. I have used in CIV3d but for 3dfaces and works great. Will test points.

 

Ok did not work as its points and uses lines.

 

Take every point and draw a line to every other point, erase any line over root 2 1.1414 times the grid spacing, use lineworksshrinwrap, this will make a outer boundary pline put on another layer delete all the point joins lines. Note will only work with a grid.

 

Thank you for your reply.Not all point spacing is equal.This is just a special case

Link to comment
Share on other sites

If you search here there is some Triangulation software it will make a mesh of random points, then you can use shrinkwrap,, problem is the mesh has to be edited removing non essential 3dfaces, this is something done in the civil surface world all the time.

 

 

You could still take the approach I suggested to make some form of shape removing lines, the obvious is the remove long lines 1st for us this = about 90% done, then erase the lines in the corners.

 

 

lee's Convex hull may be a starting point, but even looking now misses some edges compared to what I wanted as a final product. Random points is a real problem.

Link to comment
Share on other sites

As far as I can tell, correctly implemented triangulation to random set of points should return convex hull boundary - not concave...

Link to comment
Share on other sites

You are correct Marko the issue is to do with what we call long triangles have a look at this image, left is as built right is after edits and has the correct boundary.

 

Looking now 3 mistakes ? Need to fix and redo, these were little tiny slivers so the correct answer is both concave and convex, then LINEWORKSHRINKWRAP. We use delete long triangles via a length factor reducing till we start erasing ones we need then it becomes maual edits. I have been told we may have a 3rd party solution from our surveyors.

 

left after create triangles, middle is correct answer, right is convexhull.lsp

ScreenShot131.jpg

Edited by BIGAL
Link to comment
Share on other sites

Yes BIGAL, but you must remove additional triangles and then recreate boundary and that's all fine if points are random... Triangulation works well only if TIN (Triangular Irregular Network), and OP's picture is grid like... For that I suppose he/she could use routine for orthogonal connections... I remember I did exactly that here on cadtutor, only difference was that instead of points there were circles... And for boundary creation from 3dFACES I also did routine (not shrinkwrap from Civil) on autodesk/customization forum for OP Carlos Gil from Venezuela - only thing was the output was 3dpolyline...

Link to comment
Share on other sites

That with circles was actually dimensioning - not boundary, but you can use my code with some mods. for boundary creation...

http://www.cadtutor.net/forum/showthread.php?100330-Quote-external-circles

 

 

For 3dpoly around 3dfaces (after modified triangulation), try something like this... (not shrinkwrap from Civil)

https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/draw-3dpoly-in-3dfaces/m-p/7790036/highlight/true#M365245

 

 

HTH., M.R.

Link to comment
Share on other sites

As far as I can tell, correctly implemented triangulation to random set of points should return convex hull boundary - not concave...

 

I think you are right,If these points are equidistant,The problem is easy to solve,And the random point sets seem to have many situations

Link to comment
Share on other sites

You are correct Marko the issue is to do with what we call long triangles have a look at this image, left is as built right is after edits and has the correct boundary.

 

Looking now 3 mistakes ? Need to fix and redo, these were little tiny slivers so the correct answer is both concave and convex, then LINEWORKSHRINKWRAP. We use delete long triangles via a length factor reducing till we start erasing ones we need then it becomes maual edits. I have been told we may have a 3rd party solution from our surveyors.

 

left after create triangles, middle is correct answer, right is convexhull.lsp

 

it is a good solution For equidistant point sets or approximate equidistant point set

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...