我正在绘制一个具有N个节点和M条边的图形。可以从节点A到节点B,也可以从节点B到节点A,因此我不能使用直线来绘制这两条线。为了区分它们,我该如何使其中一条曲线呢?下面是我用于在j和k之间绘制一条直线的代码:
line([Xloc(j) Xloc(k)], [Yloc(j) Yloc(k)], 'LineStyle', '-');
我正在绘制一个具有N个节点和M条边的图形。可以从节点A到节点B,也可以从节点B到节点A,因此我不能使用直线来绘制这两条线。为了区分它们,我该如何使其中一条曲线呢?下面是我用于在j和k之间绘制一条直线的代码:
line([Xloc(j) Xloc(k)], [Yloc(j) Yloc(k)], 'LineStyle', '-');
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
:
线1:plot(..., 'Linestyle', '-', 'Linewidth', 1)
线2:plot(..., 'Linestyle', '.-', 'Linewidth', 3)
这样可以使您在不需要在空间中进行任意移动的情况下区分不同方向的线条。