Self Intersecting Faces on a Volumetric Mesh of a Tube

9 Ansichten (letzte 30 Tage)
Ruth Bennett
Ruth Bennett am 15 Nov. 2019
Beantwortet: Shubham am 3 Sep. 2024
Hello, have unique xyz coordinates (x,y,z) in a 2D matrix which I am trying to use as the boundaries of a volumetric mesh of a tube. I have been able to make a triangulation using alphashape, however when I go to make the mesh it has self-intersecting faces utilizing Tetgen. I do not have the CAD model and the mesh is quite large - is there a way to fix the self intersecting faces or prevent them from happening?
shp = alphaShape(x,y,z);
[faces, vertices] = boundaryFacets(shp);
TR = triangulation(faces,vertices);
meshOutput=runTetGen(inputStruct);
Thank you,
Ruth

Antworten (1)

Shubham
Shubham am 3 Sep. 2024
Hi Ruth,
Dealing with self-intersecting faces in a volumetric mesh can be challenging, especially with large datasets. Here are some strategies you can consider to address this issue:
1. Preprocessing the Data
  • Clean the Input Data: Ensure that the input coordinates are free from noise and duplicates. You can use techniques like clustering to remove outliers or use a small epsilon to merge nearly identical points.
  • Simplify the Geometry: If the dataset is too large, consider simplifying the geometry using techniques like point cloud decimation or mesh simplification algorithms (e.g., Quadric Error Metrics).
2. Adjusting Alpha Shape Parameters
  • Tune Alpha Value: The alpha parameter in alphaShape controls the detail level of the shape. A smaller alpha value might result in fewer self-intersections as it creates a tighter fit around the data points.
alphaValue = 0.1; % Adjust this value as needed
shp = alphaShape(x, y, z, alphaValue);
3. Post-processing the Mesh
  • Remove Self-intersections: Use mesh repair tools available in software like MeshLab or MATLAB functions to detect and correct self-intersections.
  • Use Mesh Smoothing: Apply smoothing algorithms to reduce sharp angles or irregularities that might lead to self-intersections.
4. Debugging
  • Visualize Problem Areas: Use visualization tools to identify where the self-intersections occur. This might give you insights into why they are happening and how to fix them.
  • Iterative Approach: Start with a smaller subset of your data to understand the behavior of the meshing process, then gradually increase the complexity.

Kategorien

Mehr zu Computational Geometry finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by