0

閉多角形をプロットするための点の配置方法を教えてください。

私のアプリケーションでは、凸状または凹状の形状を表す点のコレクションがあり、多角形を描画したいと考えています。問題は、ポイントの順序が単純なplotコマンドでは必要なポリゴンが生成されないことです。

例えば:

dtheta = pi/150;
theta  = (-pi:dtheta:(pi-dtheta))';
X1   = cos(theta); 
X2   = sin(theta);
[n1,In1]=sort(X1);  % sort is intentional here
n2=X2(In1);

今、

plot(n1,n2,'.')

ポイントの円形配置を教えてくれます

ただし、

plot(n1,n2)

円は、ポイントがどのように接続されているかの順序のため、まったく目立ちません。

(n1,n2)が呼び出されたときplot(n1,n2)に多角形、この場合は円を明確にプロットできるように配置する方法はありますか?

4

2 に答える 2

2

最初にソートしないでください。代わりに、

dtheta = pi/150;
theta  = (-pi:dtheta:(pi-dtheta))';
X1   = cos(theta); 
X2   = sin(theta);
plot(X1, X2);

シータは「一周する」わけではないため、これはポリゴンを閉じないことに注意してください。代わりに定義する場合

theta = linspace(-pi, pi, 301); % 301 = 2 * 150 + 1 for repeated end point

ポイントは同じ間隔で配置されますが、最初のポイントを最後のポイントとして繰り返し、ポリゴンを閉じます。

于 2013-10-04T13:16:54.657 に答える