(20) quiverでベクトル場を描く

投稿者: | 2013/08/29

始点(x,y)=(1,2)から、XY方向成分(3,2)のベクトルと、
始点(x,y)=(3,5)から、XY方向成分(-1,-4)のベクトルを quiver で描いてみる。

(1) まずは1本ずつ描く場合

octave:1> quiver(1,2,3,2)
octave:2> hold on
octave:3> quiver(3,5,-1,-4)
octave:4> hold off

https://www.dogrow.net/octave/wp-content/uploads/2013/08/20130828_02_001.jpg

(2) 2本のベクトルを行列でまとめて記述する場合

octave:5> v=[1 2 3 2;3 5 -1 -4]
v =
   1   2   3   2
   3   5  -1  -4

octave:6> quiver(v(:,1),v(:,2),v(:,3),v(:,4))

https://www.dogrow.net/octave/wp-content/uploads/2013/08/20130828_02_002.jpg
両ベクトルの始点は上記(1)と同じだが、上記(1)とはベクトルの長さが異なる…
なぜか?

これは、quiver 内部でベクトル同士が重なり合わないように線の長さ(=scale)を自動調整してくれているから
quiverの第5パラメーターでこの scaleを指定可能。

例えば、両ベクトルの長さを自動調整した長さの30% すなわち scale=0.3 に縮めてみる。

octave:7> quiver(v(:,1),v(:,2),v(:,3),v(:,4),0.3)

https://www.dogrow.net/octave/wp-content/uploads/2013/08/20130828_02_003.jpg

自動調整をやめさせたい場合は scale=0 を指定すればよい。

octave:8> quiver(v(:,1),v(:,2),v(:,3),v(:,4),0)

https://www.dogrow.net/octave/wp-content/uploads/2013/08/20130828_02_001.jpg
これで上記(1)と同じように表示された。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です