2009-11-26 10 views
12

私はMATLABで作業していますが、私は非常に単純な問題に固執しています。オブジェクトの位置は(x,y)theta(角度で指定します)です。私はポイントをプロットし、ポイントから始まり、角度によって定義された方向を指している矢印を追加したいと思います。実際には矢印でなくても、角度の値をグラフィカルに示すものは何でもできます!ここでMATLABで特定の角度に配置された矢印を表示するにはどうすればよいですか?

は、私が描くしようとしているものの種類を示す写真です:

削除死んImageShackのリンク

答えて

13

quiver()プロット関数は、このような矢印をプロットします。あなたのシータ値をとり、矢印としてプロットしたいベクトルを表す(x、y)デカルト座標に変換し、それらを(u、v)パラメータとして使用して、quiver()を呼び出します。

theta = pi/9; 
r = 3; % magnitude (length) of arrow to plot 
x = 4; y = 5; 
u = r * cos(theta); % convert polar (theta,r) to cartesian 
v = r * sin(theta); 
h = quiver(x,y,u,v); 
set(gca, 'XLim', [1 10], 'YLim', [1 10]); 

その他のプロットタイプについては、Matlabのマニュアルをオンラインでご覧ください。いくつかの放射状のプロットを含む多くがあります。それらはMATLAB>関数>グラフィックス>特殊なプロットセクションにあります。コマンドラインで "doc quiver"を実行し、ブラウズしてください。

2

はここで、部分的な答えだ、私はあなたが残りを把握することができます期待しています。フィギュアエディタを起動し、プロットツールを開いた。私はパレットから矢を私の姿にドラッグした。それから私はmファイルを生成しました。これには、次の行が含まれます。

注釈(figure1、 'arrow'、[0.1489 0.2945]、[0.5793 0.6481]);

したがって、座標の最初のペアは矢印の始点です。あなたは、三角法を少し使って、終点(座標の第2のペア)を見つけなければなりません。プロットツールを使ってもっと手をつけていれば、小さなアークを得ることさえできるかもしれません。

トリグがあなたを倒すかどうかをお知らせください。ああ、私はポイントをプロットするのを忘れましたが、私はあなたがそれを理解することができると思いますか?

7

あなたがにリンクされた画像のように見える何かをしようとしてしたい場合は、ここにあなたがそれを行うのに役立ついくつかのコードがあります(注:あなたが最初MathWorks File ExchangeErik Johnsonにより提出arrow.mをダウンロードしなければなりません、私はいつも)、任意の形状と大きさの矢印を生成するために使用したい:

enter image description here

x = 1;       % X coordinate of arrow start 
y = 2;       % Y coordinate of arrow start 
theta = pi/4;     % Angle of arrow, from x-axis 
L = 2;       % Length of arrow 
xEnd = x+L*cos(theta);   % X coordinate of arrow end 
yEnd = y+L*sin(theta);   % Y coordinate of arrow end 
points = linspace(0, theta); % 100 points from 0 to theta 
xCurve = x+(L/2).*cos(points); % X coordinates of curve 
yCurve = y+(L/2).*sin(points); % Y coordinates of curve 
plot(x+[-L L], [y y], '--k'); % Plot dashed line 
hold on;      % Add subsequent plots to the current axes 
axis([x+[-L L] y+[-L L]]);  % Set axis limits 
axis equal;      % Make tick increments of each axis equal 
arrow([x y], [xEnd yEnd]);  % Plot arrow 
plot(xCurve, yCurve, '-k');  % Plot curve 
plot(x, y, 'o', 'MarkerEdgeColor', 'k', 'MarkerFaceColor', 'w'); % Plot point 

そして、ここでは、それは次のようになります

text関数を使用して、プロットに角度と座標値のテキストを追加することができます。

関連する問題