Вот пример кода, который, я думаю, сгенерирует тот тип графика, который вам нужен.Он использует inpolygon
для «фильтрации» точек внутри многоугольника.Векторное поле все еще оценивается в исходных meshgrid
точках.Он также легко распространяется на несколько полигонов.
clear
clc
x = linspace(0, 1, 21);
[X,Y] = meshgrid(x,x);
U = -Y; %some velocity field
V = X;
hold off
quiver(X,Y,U,V); %quiver on all points
polygon = [0.2,0.2;
0.7,0.5;
0.5,0.8]; %polygon vertices
ind = inpolygon(X,Y,polygon(:,1),polygon(:,2)); %get indices of points inside polygon
hold on
quiver(X(ind),Y(ind),U(ind),V(ind)); %quiver of points inside polygon