NノードとMエッジを持つプロットを描画しています。ノードAからノードBへのエッジとノードBからAへのエッジが存在する可能性があるので、両方のラインを描くために直線を使用することはできません。どのようにしてそれらのうちの1つを他のものと区別できるように曲線にすることができますか?jとkの間に直線を描くコードです。Matlabで曲線を描く方法
line([Xloc(j) Xloc(k)], [Yloc(j) Yloc(k)], 'LineStyle', '-');
NノードとMエッジを持つプロットを描画しています。ノードAからノードBへのエッジとノードBからAへのエッジが存在する可能性があるので、両方のラインを描くために直線を使用することはできません。どのようにしてそれらのうちの1つを他のものと区別できるように曲線にすることができますか?jとkの間に直線を描くコードです。Matlabで曲線を描く方法
line([Xloc(j) Xloc(k)], [Yloc(j) Yloc(k)], 'LineStyle', '-');
描画する中間点を定義する必要があります。
次に、これらを手動で定義するか、スプライン補間を調べることができます。
スプライン補間では、完全な曲線を決定するために中間点を1つだけ必要とします。
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
においては、点のより大きなセットのために使用されるが、中間点はありません。あなたのポイントをスムーズに接続したいだけなら、それは見てみる価値があるかもしれません。
よりもむしろ1が湾曲すること、オフセット、あるいは、あなたは異なる方向に異なるlinestyle
Sを使用することができます。
1行目:plot(..., 'Linestyle', '-', 'Linewidth', 1)
2行目:plot(..., 'Linestyle', '.-', 'Linewidth', 3)
これは、空間の任意のシフトを必要とせずに異なる方向のあなたの線を区別可能にするでしょう。
This functionファイル交換からのものは、まさにあなたが必要としているようです。著者の記述から:
ダイレクト(1ウェイ)エッジが曲率は反時計回りに屈曲点
あなたは、それが必要余分な機能や微調整が必要な場合から離れると同様に曲がった点線をプロットしていますコードを必要に応じて簡単に変更できます。
オハイオ州はそれが助けてくれてありがとう! – Sara
返信いただきありがとうございます! – Sara