Main Content

sortboundaries

polyshape の境界の並べ替え

説明

polyout = sortboundaries(polyin,criterion,direction) は、指定した criterion および direction に従って境界が並べ替えられた polyshape オブジェクトを返します。たとえば、polyout = sortboundaries(polyin,'area','ascend') は境界が polyin と同じである polyshape を返します。polyout は領域別に境界を昇順にリストします。

polyout = sortboundaries(polyin,'centroid',direction,'ReferencePoint',point) は、各境界の重心から基準点までの距離に基づいて境界が並べ替えられた polyshape を返します。

すべて折りたたむ

多角形の境界を辺の数で並べ替え、境界に 1 つずつアクセスするようにします。

3 辺をもつ境界と 4 辺をもつ境界の 2 つの境界を含む多角形を作成します。

x1 = [0 1 1 0];
y1 = [0 0 1 1];
x2 = [2 3 2.5];
y2 = [2 2 3];
polyin = polyshape({x1,x2},{y1,y2});
plot(polyin)

Figure contains an axes object. The axes object contains an object of type polygon.

辺の数に従って境界を降順に並べ替え、4 辺をもつ境界が最初に出力 polyshape オブジェクトでインデックス付けされるようにします。

polyout = sortboundaries(polyin,'numsides','descend');

これで、4 辺をもつ境界をインデックスに基づいて参照できるようになります。たとえば、境界の頂点にアクセスする場合や面積を計算する場合に参照します。

[x,y] = boundary(polyout,1)
x = 5×1

     0
     0
     1
     1
     0

y = 5×1

     0
     1
     1
     0
     0

area(polyout,1)
ans = 1

入力引数

すべて折りたたむ

入力 polyshape。スカラー、ベクトル、行列または多次元配列として指定します。

データ型: polyshape

並べ替え基準。次の値のいずれかとして指定します。

  • 'area' — 境界の面積の順に並べ替え。

  • 'perimeter' — 境界の周囲長の順に並べ替え。

  • 'numsides' — 各境界の辺の数の順に並べ替え。

  • 'centroid' — 各境界の重心と基準点 (0,0) との間の距離の順に並べ替え。

並べ替える方向。'ascend' または 'descend' として指定します。

基準点。2 要素の行ベクトルとして指定します。1 番目の要素は基準点の x 座標で、2 番目の要素は y 座標です。

バージョン履歴

R2017b で導入