1

我有四个点,我使用 matlab 制作了一个多边形

x = [2271 -3645 -2267 3645];
y = [-3635 -2259 3639 2254];

figure;
plot([x x(1)],[y y(1)],'r-');

我有一个多边形,我需要在矩形上方生成 50*50 间隔的网格

我尝试使用 zgrid 函数,但它没有给出结果。

我需要该多边形上的 2D 网格,我需要将网格点放入文件中。

请帮我解决这个问题

提前致谢

4

2 回答 2

5

要生成限制在多边形内部的点网格,您可以执行以下操作:

[X,Y]=meshgrid(linspace(min(x),max(x),round((max(x)-min(x))/50)),linspace(min(y),max(y),round((max(y)-min(y))/50)));
isin=inpolygon(X(:),Y(:),[x x(1)],[y y(1)]);
Xin = X(isin);
Yin = Y(isin);

这里[Xin, Yin]包含网格顶点的坐标。

在此处输入图像描述

于 2013-08-29T08:39:23.250 回答
1

meshgrid您可以使用matlab 的内置函数计算网格,并使用mesh 例如绘制它。网格坐标存储在X和中Y

在这里,您定义的多边形绘制在网格的顶部。以下代码

x = [2271 -3645 -2267 3645];  
y = [-3635 -2259 3639 2254];  

outside = 100;  
grid_val = 50;

figure('Color','w');  
[X,Y] = meshgrid(min(x)-outside:grid_val:max(x)+outside, min(y)-outside:grid_val:max(y)+outside);   
hold on;  
hm = mesh(X,Y,X*0);  
hp = plot([x x(1)],[y y(1)],'r-');  
set(hm,'EdgeColor','k')  
set(hp,'LineWidth',2)  
set(gca,'Visible','off');  

给出以下网格(完整和缩放)

在此处输入图像描述 在此处输入图像描述

于 2013-08-29T08:25:48.517 回答