How to generate 2D grid map inside of a patch area

6 visualizaciones (últimos 30 días)
David Hermann
David Hermann el 7 de Abr. de 2022
Respondida: George Abrahams el 10 de Feb. de 2024
I would like to create a 2D grid map with equidistante points based on the faces and vertices of an patch.
In my case, I get a complex patch shape from a given figure (fig). With that I can read the vertices and faces
dataObjs = findobj(fig,'-property','XData');
faces = dataObjs.Faces;
vertices = dataObjs.Vertices;
Based on this information, a grid map (e.g. 1m grid) should be placed in the areas of that patch.
And this is where I get stuck.
One idea is that I put a grid map over the whole area and check which points are inside the patch area (like inShape), but I haven't found a suitable solution for this.

Respuestas (2)

KSSV
KSSV el 7 de Abr. de 2022
Read about inpolygon.
  1 comentario
David Hermann
David Hermann el 7 de Abr. de 2022
Thanks for the quick reply.
With inpolygon I cannot currently reproduce the complex form. I did it once via polyshape based on the vertices coordinate points, the polynomial areas look different then. The patch still uses the faces to connect the vertices.

Iniciar sesión para comentar.


George Abrahams
George Abrahams el 10 de Feb. de 2024
A 2D grid map of a patch sounds suspiciously like an image of the patch. Considering that you're first extracting the faces and vertices from a figure, most likely you want the either the getframe, saveas, or exportgraphics function.
If for some reason you need more control, you'll need a rasterization algorithm. If it's a 2D triangulation, you could use patch_rasterize on File Exchange. If it's a 3D triangulation, you could use my rendering toolbox on File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by