我正繪製一個有N個節點和M個邊的繪圖。從節點A到節點B以及節點B到A可以有一條邊,所以我不能用直線畫出兩條線。我怎樣才能讓其中一個彎曲,以便與另一個區分開來?這裏是我的代碼,在j和k之間繪製一條直線。如何在Matlab中繪製曲線
line([Xloc(j) Xloc(k)], [Yloc(j) Yloc(k)], 'LineStyle', '-');
我正繪製一個有N個節點和M個邊的繪圖。從節點A到節點B以及節點B到A可以有一條邊,所以我不能用直線畫出兩條線。我怎樣才能讓其中一個彎曲,以便與另一個區分開來?這裏是我的代碼,在j和k之間繪製一條直線。如何在Matlab中繪製曲線
line([Xloc(j) Xloc(k)], [Yloc(j) Yloc(k)], 'LineStyle', '-');
您將需要定義要繪製的中間點。
然後您可以手動定義它們,或者查看樣條插值。
使用樣條插值,您只需要一箇中間點來確定完整曲線。
在MATLAB中,你可以找到演示spline2d
這樣做。下面是它的要點:
% end points
X = [0 1];
Y = [0 0];
% intermediate point (you have to choose your own)
Xi = mean(X);
Yi = mean(Y) + 0.25;
Xa = [X(1) Xi X(2)];
Ya = [Y(1) Yi Y(2)];
t = 1:numel(Xa);
ts = linspace(min(t),max(t),numel(Xa)*10); % has to be a fine grid
xx = spline(t,Xa,ts);
yy = spline(t,Ya,ts);
plot(xx,yy); hold on; % curve
plot(X,Y,'or') % end points
plot(Xi,Yi,'xr') % intermediate point
在splined2
,其用於更大的一組點,但沒有中間點。如果你只是想讓你的積分順利連接,那麼值得一看。
而不是使一個彎曲,偏移,或以其它方式,可以使用不同linestyle
S爲不同的方向:1
線:plot(..., 'Linestyle', '-', 'Linewidth', 1)
2行:plot(..., 'Linestyle', '.-', 'Linewidth', 3)
這會讓你的線條在不同的方向上有所區別,而不需要在空間上任意移動。
哦謝謝它有幫助! – Sara 2012-03-05 01:14:03
非常感謝您的回覆! – Sara 2012-03-04 05:34:25