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

6 vues (au cours des 30 derniers jours)
David Hermann
David Hermann le 7 Avr 2022
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.

Réponses (2)

KSSV
KSSV le 7 Avr 2022
Read about inpolygon.
  1 commentaire
David Hermann
David Hermann le 7 Avr 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.

Connectez-vous pour commenter.


George Abrahams
George Abrahams le 10 Fév 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