Это может быть очень легко получено в MATLAB.Вам нужно использовать функцию inpolygon.Эта функция дает вам индексы точек, лежащих внутри, и откладывает данный полигон.Как только вы знаете индексы, вы можете получить то, что вы хотите.Вы можете проверить приведенную ниже демонстрацию:
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) выше на ваши координаты файла формы, вы получите то, что вы хотите.