I have a point cloud which describes a closed surface mesh. I want to create a volume mesh out of this: Therefore I have to append some points inside this "surface-point-cloud". Until now I use a kind of Sierpinski-algorithm:
1) begin with middlepoint of all points
2) random choose one of the surface points
3) create new point at the half of the connection line between point (1) and (2)
4) start again at (1) but take the new point (3) as first point
Problem: When I triangulate all my points then many angles are too big (ANSYS can't work with this dataset).
Does anyone know a good algorithm for creating points inside a surface mesh so that the angles after the triangulation aren't too big?
Well I think you are approaching the problem wrongly
- but I could misunderstood your problem
- you have point cloud and want triangulated mesh
- you can not add points at your will ... that just complicate things
- instead find perimeter polygon
- and then use triangulation on it
Recently I was solving very similar problem.
- here: https://stackoverflow.com/a/21884021/2521214
- it is finding holes in point-cloud and create perimeter polygon
- unless the hole is very small or nested with other holes it works without artifacts
- you need to tweak the H,V line scan to meet your needs (or fill the map[][] inverted)
- just find points instead of holes in map
After this you just use any triangulation ...
- or make your own
- because you have the convex/concave border info in H,V lines (duplicate flag)
- if on single row or column are more lines then 1 with the same hole id
- then you have to disect the mesh to obtain convex polygons from it