如何在matlab中的矩形上形成网格

时间:2013-08-29 06:31:42

标签: matlab grid polygon

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

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

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

我有一个多边形,我需要在50 * 50间隔

的矩形上方生成网格

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

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

请帮我解决这个问题

提前致谢

2 个答案:

答案 0 :(得分: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]包含网格顶点的坐标。

enter image description here

答案 1 :(得分:1)

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

此处您定义的多边形绘制在网格的顶部。以下代码

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');  

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

enter image description here enter image description here