-1

matlab のグラフにランダムに並べ替えられた点があり、プロットするとさまざまな閉じた形状が生成される場合。閉じた形状の 1 つの左側にある特定の点を指定すると、その形状のすべての点をベクトル形式で取得するには、点を収集する規則が時計回りの方向に移動することを念頭に置いてください。

4

1 に答える 1

1

コメント付きの例:

cla
% Random data
x = rand(15,1);
y = rand(15,1);
scatter(x,y)
% Random point to the left
hold on
p = [-0.1, rand(1)*0.2 + 0.5];
plot(p(1),p(2),'*r')

% Separate points that lie above your point
idx = y >= p(2);

% Sort x then y increasing for upper half and x then y decreasing for lower half 
shape = [sortrows([x( idx) y( idx)],[1 2]) 
         sortrows([x(~idx) y(~idx)],[-1 -2])];

shape開いた線をプロットして、時計回りに並べ替えられた座標が含まれていることを確認します。

% Plot clockwise open line
plot(shape(1:end ,1),shape(1:end,2),'k')

ここに画像の説明を入力

于 2013-05-22T14:35:14.833 に答える