Compute mesh of the projection of a 3D surface triangulation

Given a triangulated surface in $\Bbb{R}^3$ we can simply project it on a plane. This will result in a family of triangles which do not form a mesh of the projection for the following reasons:

• each point of the projection is covered by at least two triangles (see the picture).
• the orientation of the triangles is not right
• things may get more complicated for more complex surfaces

Even if the projection is not a mesh, every point of the projected surface is inside one of the triangles, so this could give a good idea of the projection.

Is there a way to extract/construct a mesh of the projection, starting from the projection of the surface?

• I guess you could try to compute the convex hull of the projected point set and mesh it, but you'd still have to figure out how to deal with multiply-connected surfaces like the torus in your example. – sssssssssssss Mar 25 '18 at 22:30
• I think that you can take your projected mesh and then some cleanup. Using, for example, MeshLab: meshlab.net – nicoguaro Mar 25 '18 at 23:46

If you just project the vertices to the plane, you can then construct a proper triangulation from that, for example using a Voronoi or Delaunay procedure.

This does not take into account the triangles of the original mesh. If you'd like to be more faithful to the original mesh, then you could take the collection of projected vertices and split all crossing line segments into non-crossing ones. The result will be something that does not always consist of triangles, but you can always split polygons into triangles. You'd then get a triangulation that is a refinement/further subdivision of the two-dimensional mesh you show in your picture.

• Thank you for the ideas. Using Delaunay directly on the projected points fills the holes in the projection. I'll try looking more closely, since Matlab has the ability to pass some constraints into delaunayTriangulation. – Beni Bogosel Mar 26 '18 at 13:45
• To clarify, the error of this algorithm is that the projection has holes, but the Delaunay of the projection points does not. – Alan Baljeu Nov 8 '18 at 17:22
• That's fair -- but you can define the domain of the problem where you want to create the triangulation as the union of the projection of the triangles of the original mesh. That's going to be a domain bounded by a polygon. – Wolfgang Bangerth Nov 9 '18 at 1:00
{"extraction_info": {"found_math": true, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 1, "mathjax_display_tex": 0, "mathjax_asciimath": 1, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0, "katex": 0, "math-container": 0, "wp-katex-eq": 0, "align": 0, "equation": 0, "x-ck12": 0, "texerror": 0, "math_score": 0.5001710653305054, "perplexity": 347.5695153965463}, "config": {"markdown_headings": false, "markdown_code": true, "boilerplate_config": {"ratio_threshold": 0.18, "absolute_threshold": 10, "end_threshold": 5, "enable": true}, "remove_buttons": true, "remove_image_figures": true, "remove_link_clusters": true, "table_config": {"min_rows": 2, "min_cols": 3, "format": "plain"}, "remove_chinese": true, "remove_edit_buttons": true, "extract_latex": true}, "warc_path": "s3://commoncrawl/crawl-data/CC-MAIN-2019-13/segments/1552912203548.81/warc/CC-MAIN-20190325031213-20190325053213-00015.warc.gz"}