2012-04-12 38 views
1

當我繪製區域時,我開始困擾着我無法擺脫這個不斷出現的垂直線;Matlab垂直線在使用時持續出現和區域()

[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]) 

Area plot

有什麼辦法來避免這一行?

BTW:該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; 

回答

1

你的問題可能是由區()繪製的,因爲它似乎是主要用於堆放幾個vecotrs。如果縮小一點,並看到藍色區域中第一個點的垂直線,則區域功能很可能是問題。

功能:

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

可能做的伎倆給你,因爲它繪製填充的多邊形。

/托馬斯

+0

是想這一點,但不能使它在工作的時候。但現在它的工作就好了..奇怪..但是非常感謝你的幫助。 – Norfeldt 2012-04-12 12:16:47

+0

沒問題!!!! – ThomasKJDK 2012-04-12 12:27:57