1

領域をプロットするときに表示され続けるこの垂直線を取り除くことができないことに悩まされ始めています。

[x y] = ginputExtra(4)

x =    0.1947    0.6118    0.8329    0.4136    
y =    0.5746    0.8173    0.4225    0.3553

area([x x(1)],[y y(1)])
[x y] = ginputExtra(4,true)

x =    0.5087    0.6881    0.4954    0.3204    
y =    0.4961    0.2382    0.1566    0.3566

hold on;
area([x x(1)],[y y(1)],'FaceColor',[1 0 0])

面積プロット

この行を回避する方法はありますか?

ところで:私が使用するginputExtraメソッド呼び出し..

function [x y] = ginputExtra(n,booText)
% INPUT
% n:            Number of points to plot
% booText:      Boolean (default false) command to display point number in
%               the plot.

% Author:   Lasse Nørfeldt (Norfeldt) 
% Date:     2012-04-09

if nargin ==2
    bText = booText;
else
    bText = false;
end
H = gca;
set(H, 'YLimMode', 'manual'); set(H, 'XLimMode', 'manual');
set(H, 'YLim', get(H,'YLim')); set(H, 'XLim', get(H,'XLim'));

numPoints = n; xg = []; yg = [];
for i=1:numPoints
    [xi yi] = ginput(1);
    xg = [xg xi]; yg = [yg yi];
    if i == 1
        hold on;
        plot(H, xg(i),yg(i),'ro');
        if bText text(xg(i),yg(i),num2str(i),'FontSize',14); end
    else
        plot(xg([i-1:i]),yg([i-1:i]),'r');
        if bText text(xg(i),yg(i),num2str(i),'FontSize',14); end
    end    
end
hold off;

x = xg; y = yg;
4

1 に答える 1

1

あなたの問題は、主に複数のベクトルを積み重ねるためのものであるように見えるため、area() によるプロットにある可能性があります。少しズームアウトして、青色の領域の最初のポイントから同様の垂直線が見える場合は、領域関数が問題である可能性が高くなります。

関数:

fill([x x(1)],[y y(1)],COLOR)

塗りつぶされたポリゴンをプロットするので、うまくいくかもしれません。

/トーマス

于 2012-04-12T11:14:13.853 に答える