Main Content

addboundary

polyshape の境界を追加

説明

polyout = addboundary(polyin,x,y)polyshape オブジェクトを返します。このオブジェクトは、既存の polyshape と、ベクトル x および y の x 座標と y 座標により定義される追加の境界で構成されます。

polyout = addboundary(polyin,P) は、N 行 2 列の行列 P (N は頂点の数) に含まれる座標で定義される境界を追加します。

polyout = addboundary(polyin,{x1,x2,...,xM},{y1,y2,...,yM}) は M 個の境界を追加します。各境界の x 座標のベクトルは cell 配列内にまとめてリストされています。対応する y 座標のベクトルも cell 配列内にまとめてリストされています。xi はそれぞれ、対応する yi と同じ長さでなければなりませんが、頂点の数は境界によって異なっていてもかまいません。

polyout = addboundary(___,Name,Value) は、前述の任意の構文について、polyshape に境界を追加するための追加パラメーターを指定します。

すべて折りたたむ

四角形を作成してから、この四角形と三角形で構成される 2 番目の多角形を作成します。

polyin = polyshape([0 0 1 1],[0 0.5 0.5 0])
polyin = 
  polyshape with properties:

      Vertices: [4x2 double]
    NumRegions: 1
      NumHoles: 0

plot(polyin)

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

polyout = addboundary(polyin,[2 3 2.5],[2 2 3])
polyout = 
  polyshape with properties:

      Vertices: [8x2 double]
    NumRegions: 2
      NumHoles: 0

plot(polyout)

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

入力引数

すべて折りたたむ

入力 polyshape。スカラーとして指定します。

データ型: polyshape

境界の頂点の x 座標。ベクトルとして指定します。各境界の間に NaN を配置すると、複数の境界の座標を同時に表すことができます。たとえば、polyout = addboundary(polyin,[0 0 1 NaN 1 5 5],[1 0 0 NaN 5 5 1]) は、polyin と 2 つの追加の三角形で構成される polyshape オブジェクトを返します。

double 型でない数値入力頂点は、自動的に double 型に変換されます。

データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

境界の頂点の y 座標。ベクトルとして指定します。各境界の間に NaN を配置すると、複数の境界の座標を同時に表すことができます。たとえば、polyout = addboundary(polyin,[0 0 1 NaN 1 5 5],[1 0 0 NaN 5 5 1]) は、polyin と 2 つの追加の三角形で構成される polyshape オブジェクトを返します。

double 型でない数値入力頂点は、自動的に double 型に変換されます。

データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

境界の頂点。2 列の行列として指定します。P の 1 列目には頂点の x 座標が含まれ、2 列目には y 座標が含まれています。P には少なくとも 3 行がなければなりません。

各境界の間に NaN を配置すると、複数の境界の座標を同時に表すことができます。たとえば、polyout = addboundary(polyin,[1 0; 0 0; 0 1; NaN NaN; 1 5; 5 5; 5 1]) は、polyin と 2 つの追加の三角形で構成される polyshape オブジェクトを返します。

double 型でない数値入力頂点は、自動的に double 型に変換されます。

データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

M 個の境界の x 座標。ベクトルの cell 配列として指定します。xi の長さはそれぞれ異なっていてもかまいませんが、対応する yi ベクトルの長さとは一致しなければなりません。

double 型でない数値入力頂点は、自動的に double 型に変換されます。

データ型: cell

M 個の境界の y 座標。ベクトルの cell 配列として指定します。yi の長さはそれぞれ異なっていてもかまいませんが、対応する xi ベクトルの長さとは一致しなければなりません。

double 型でない数値入力頂点は、自動的に double 型に変換されます。

データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

名前と値の引数

例: polyout = addboundary(polyin,x,y,'SolidBoundaryOrientation','ccw')

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

境界の方向。'SolidBoundaryOrientation' と次の値のいずれかで構成されるコンマ区切りのペアとして指定します。

  • 'auto' — 実線の境界について、頂点の方向として時計回りまたは反時計周りのいずれかを自動的に選択します。

  • 'cw' — 時計回りの頂点の方向が実線の境界として扱われます。

  • 'ccw' — 反時計回りの頂点の方向が実線の境界として扱われます。

ほとんどのアプリケーションでは、頂点の方向は重要ではありません。これは主に境界の入れ子を判別するためのアルゴリズム ツールです。このパラメーターは通常、多角形データが他のソフトウェアにより特定の規則を使用して作成された場合に、一貫性および効率性を確保するために指定されます。

頂点の変更。'Simplify' と次の値のいずれかで構成されるコンマ区切りのペアとして指定します。

  • true — 入力頂点により交差や適切でない入れ子が発生する場合に、多角形の頂点を変更して、適切に定義された多角形を作成します。

  • false — 交差や適切でない入れ子が発生していても、入力頂点を変更しません。適切に定義されていない多角形を使用して計算すると、結果が不正確になったり、予期しないものになる可能性があります。

データ型: logical

同一線上の頂点。'KeepCollinearPoints' と、次のいずれかで構成されるコンマ区切りのペアとして指定します。

  • false — 出力 polyshape が境界の定義に必要な最小数の頂点のみを含むように、同一線上の点を削除する。

  • true — 同一線上の点をすべて頂点として保持する。

'KeepCollinearPoints' が指定されていない場合、その値は入力 polyshape の作成時に使用した値に自動的に設定されます。

データ型: logical

バージョン履歴

R2017b で導入