我有四个点,我使用 matlab 制作了一个多边形
x = [2271 -3645 -2267 3645];
y = [-3635 -2259 3639 2254];
figure;
plot([x x(1)],[y y(1)],'r-');
我有一个多边形,我需要在矩形上方生成 50*50 间隔的网格
我尝试使用 zgrid 函数,但它没有给出结果。
我需要该多边形上的 2D 网格,我需要将网格点放入文件中。
请帮我解决这个问题
提前致谢
要生成限制在多边形内部的点网格,您可以执行以下操作:
[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]
包含网格顶点的坐标。
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');
给出以下网格(完整和缩放)