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

6 Ansichten (letzte 30 Tage)
David Hermann
David Hermann am 7 Apr. 2022
Beantwortet: George Abrahams am 10 Feb. 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.

Antworten (2)

KSSV
KSSV am 7 Apr. 2022
Read about inpolygon.
  1 Kommentar
David Hermann
David Hermann am 7 Apr. 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.

Melden Sie sich an, um zu kommentieren.


George Abrahams
George Abrahams am 10 Feb. 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