Main Content

nearestvertex

最も近い polyshape 頂点をクエリ

説明

[vertexid,boundaryid,ind] = nearestvertex(polyin,x,y) は、各 2 次元クエリ点に最も近いスカラー polyshape オブジェクトの頂点を検出します。クエリ点の座標は xy で指定します。出力には次の 3 つのベクトルが含まれます。

  • vertexid は、各クエリ点について、最も近い頂点に対応する polyin.Vertices の行番号を格納します。

  • boundaryid は、各クエリ点について、最も近い頂点に対応する polyin の境界インデックスを格納します。

  • ind は、各クエリ点について、境界 boundaryid 内の最も近い頂点のインデックスを格納します。

[vertexid,boundaryid,ind] = nearestvertex(polyin,P) は、クエリ点を 2 列の行列 P として指定します。行列の最初の列には x 座標が格納され、2 番目の列には対応する y 座標が格納されます。

すべて折りたたむ

polyshape オブジェクトを作成し、クエリ点 (2,1.8) に最も近い polyshape の頂点を計算します。

P = [1 1; 3 1; 2 2];
polyin = polyshape(P);
[vertexid,boundaryid,ind] = nearestvertex(polyin,2,1.8);

polyshape とクエリ点を黒色でプロットします。

plot(polyin)
hold on
plot(2,2.5,'k*')

次に、最も近い頂点を赤色でプロットします。vertexid 値を使用すると、最も近い頂点に対応する polyin.Vertices の行にインデックスを付け、その座標にアクセスすることができます。

plot(polyin.Vertices(vertexid,1),polyin.Vertices(vertexid,2),'r*')
hold off

Figure contains an axes object. The axes object contains 3 objects of type polygon, line.

入力引数

すべて折りたたむ

入力 polyshape。スカラー polyshape オブジェクトとして指定します。

2 次元クエリ点の入力座標。スカラーまたはベクトルとして指定します。xy の長さは同じでなければなりません。

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

2 次元クエリ点の入力頂点。2 列の行列として指定します。P の 1 列目には x 座標が含まれ、2 列目には対応する y 座標が含まれます。

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

出力引数

すべて折りたたむ

頂点 ID。スカラーまたはベクトルとして返されます。vertexid には、各クエリ点について、最も近い頂点に対応する入力 polyshape の行番号が格納されます。vertexid の長さは、クエリ点のベクトルまたは配列と同じです。

データ型: double

境界 ID。スカラーまたはベクトルとして返されます。boundaryid には、各クエリ点について、最も近い頂点に対応する入力 polyshape の境界インデックスが格納されます。boundaryid の長さは、クエリ点のベクトルまたは配列と同じです。

データ型: double

インデックス。スカラーまたはベクトルとして返されます。ind には、各クエリ点について、境界 boundaryid 内の最も近い頂点のインデックスが格納されます。

データ型: double

バージョン履歴

R2018a で導入