wo80 / Triangle.NET

C# / .NET version of Jonathan Shewchuk's Triangle mesh generator.
463 stars 85 forks source link

The smooth command does not work properly #3

Closed shenh closed 2 years ago

shenh commented 6 years ago

Thanks for sharing this great library. It is super fast (minutes for even millions of nodes). Excellent work! I found the Smooth command does not work as expected when I have a orphan segment in the domain. The orphan segment is needed to model a wall (eg a levee along river bank). Please see the content of my outline.poly file below (github does not support uploading .poly file). I believe the issue is related to that the Voronoi diagram is not generated correctly, because the smoothing algorithm (Lloyd algorithm) uses Voronoi diagram. I did check the Voronoi diagram and they indeed have problem. I did not see this issue when I do not have orphan segment inside the domain. Could you advise how to fix the issue? Thanks Hailiang

------------------------------------------

num_of_vertices dimension(must be 2) [num_of_attribute] [num_of_boundary_marker]

ID x y [attribute] [boundary marker]

------------------------------------------

6 2 0 1 0 -0.002465 3.40821 1 1 -0.002465 -0.004346 1 2 5.512226 0.009304 1 3 5.498576 3.401385 1 4 0.530195 1.905726 1 5 1.04977 2.874663 1

------------------------------------------

num_of_segments [num_of_boundary_marker]

ID end_point end_point [boundary marker]

------------------------------------------

5 1 0 0 1 1 1 1 2 1 2 2 3 1 3 3 0 1 4 4 5 1

------------------------------------------

num_of_openings

ID x y

------------------------------------------

0

-------------------------------------------

optional region input

num_of_regional_attributes_area_constraints

ID x y attribute maximum_area

-------------------------------------------

electroremy commented 6 years ago

Hi,

You can put your .POLY file into a ZIP file that is supported by GitHub

I don't understand what is your "orphan" segment... it is a way to force extra points in the triangle mesh to solve "T-junction problem" or something like that ?

Thanks

Geri-Borbas commented 6 years ago

Please note that I don't support this library (as I'm not the author of it). Make sure to browse the issues and discussions section at the original CodePlex repository (now archived).

shenh commented 6 years ago

Thanks for the reply. Yes I did check the issues and discussions section at the original rep. By orphan segment, I was referring to a segment not connected to the domain outline, see attached for an example. 2018_03_26_12_46_01_triangle net_mesh_explorer_outline poly

electroremy commented 6 years ago

OK

So your "orphan segment" is just a kind of "degenerated hole"

Thanks

wo80 commented 6 years ago

Just a guess: are you missing the "Conforming Delaunay" option?

wo80 commented 2 years ago

No input since 2018, so I'm closing this one with #16

There have been changes to the Voronoi and smoother code, so the issue might be fixed. Otherwise, please provide more info.