12

ポリゴンの8つの頂点のx座標とy座標である2つのベクトルがあります

x=[5 5 7 7 9 9 5 7]

y=[8 6 6 8 6 8 10 10]

それらを(時計回りに)並べ替えて、正しいベクトルを取得したい(ポリゴンを正しく描画するため)

x=[5 7 9 9 7 7 5 5]

y=[6 6 6 8 8 10 10 8]

4

4 に答える 4

24

ステップ1:頂点の重み付けされていない平均を見つけます。

cx = mean(x);
cy = mean(y);

ステップ2:角度を見つける:

a = atan2(y - cy, x - cx);

ステップ3:正しいソート順を見つける:

[~, order] = sort(a);

ステップ4:座標を並べ替えます。

x = x(order);
y = y(order);
于 2012-12-18T14:47:46.333 に答える