假设我们有一个颤抖场,即我们有一个网格,然后为每个点分配一个向量。是否可以仅绘制某个多边形内的颤动场?
因此在下图中,我们希望将三角形之外的所有内容都裁剪掉。
理想情况下,该代码对于下一步是有用的,即拥有多个此类多边形并将其补全裁剪掉。
一些方法:
答案 0 :(得分:0)
这里有一些示例代码,我认为它们会生成您想要的绘图。它使用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