在MATLAB中可以很容易地获得它。你需要在多边形中使用函数。此函数为您提供位于给定多边形内部和位置的点的索引。一旦你知道指数,你就可以得到你想要的。你可以查看下面的演示:
x = [1 2 3 4 3 2]'; y = [4 5 5 4 3 3]'; k = boundary(x,y); x0 = min(x) ; x1 = max(x) ; y0 = min(y) ; y1 = max(y) ; [X,Y] = meshgrid(linspace(x0,x1),linspace(y0,y1)) ; idx = inpolygon(X(:),Y(:),x(k),y(k)) ; X(~idx) = NaN ; Y(~idx) = NaN ; plot(x,y,'.r') hold on patch(x(k),y(k),'k') ; plot(X(idx),Y(idx),'.r')
只需将上面的(x,y)替换为您的形状文件坐标,您就可以得到您想要的结果。