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