我被这个问题困扰了很长时间。我有一个多边形区域(比如说,一个六边形)。我可以计算多边形内任意点的某个函数的值。现在我需要为这些数据创建一个填充轮廓(在 MATLAB 中使用 contourf)。我该怎么做。我在下面的链接(第 121 页)中找到了有关此主题的一些讨论
http://www-personal.umich.edu/~jpboyd/eng403_chap4_contourplts.pdf
这有点效果,但它仍然会产生我不想要的锯齿状边缘。有人对这个问题有什么建议吗?谢谢。这是我的代码
close all
Node = [ 1.0 0
0.5 0.8660
-0.5 0.8660
-1.0 0
-0.5 -0.8660
0.5 -0.8660];
[x,y] = meshgrid(-1:0.1:1,-1:0.1:1);
N = zeros(size(x));
for i=1:size(x,2)
for j=1:size(y,2)
p = [x(i,j) y(i,j)];
IN = inpolygon(p(1),p(2),Node(:,1),Node(:,2));
if IN
N(i,j)= rand;
else
N(i,j)= NaN;
end
end
end
figure
contourf(x,y,N,'LineStyle','none'), hold on;
xlabel('X'), ylabel('Y'), axis equal; axis off; colorbar;
line([Node(:,1);Node(1,1)],[Node(:,2);Node(1,2)],'Color',[1 1 1],'LineWidth',2.0)
clear IN i j p x y