私は長い間この問題に悩まされています。多角形の領域(たとえば、六角形)があります。ポリゴン内の任意のポイントで特定の関数の値を計算できます。次に、このデータの塗りつぶされた等高線を作成する必要があります(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