IInkDisp::NearestPoint メソッド (msinkaut.h)
既知のポイントに最も近い InkDisp オブジェクト内の IInkStrokeDisp を取得します。必要に応じて、最も近いポイントのインデックスと、指定したポイントからのストロークまでの距離を指定します。
構文
HRESULT NearestPoint(
[in] long X,
[in] long Y,
[in, out, optional] float *PointOnStroke,
[in, out, optional] float *DistanceFromPacket,
[out, retval] IInkStrokeDisp **Stroke
);
パラメーター
[in] X
x-
ポイントのインク空間内の位置。
[in] Y
ポイントの y-
インク空間内の位置を指定します。
[in, out, optional] PointOnStroke
省略可能。 InkDisp オブジェクト内の指定したポイントに最も近いストロークの線上のポイントを取得します。 たとえば、値 1.5 は、ストロークの 1 番目と 2 番目のパケットの間にポイントが中間にあることを示します。 このパラメーターは、NULL でもかまいません。 既定値は 0 です。
[in, out, optional] DistanceFromPacket
省略可能。 インク空間内の指定したポイントと InkDisp オブジェクトの最も近いストロークの間の距離を取得します。 このパラメーターは、NULL でもかまいません。 既定値は 0 です。
[out, retval] Stroke
このメソッドが返されるときに、InkDisp オブジェクト内の指定したポイントに最も近いポイントを含む IInkStrokeDisp が格納されます。 指定した点から同じ距離にある点が複数のストロークに含まれている場合、この結果の値は任意です。
戻り値
このメソッドは、これらの値のいずれかを返すことができます。
リターン コード | 説明 |
---|---|
|
正常終了しました。 |
|
パラメーターに無効なポインターが含まれていました。 |
|
未指定のエラーが発生しました。 |
|
メソッド内で例外が発生しました。 |
|
メモリ操作を割り当てることができません。 |
解説
ストロークの線上の点が 2 つの物理的な座標点の間に収まる可能性があるため、出力 ポイント パラメーターは浮動小数点数として定義されます。 この値を使用して、 Split メソッドで ストロークを分割するか、値を切り上げたり下げたりして、ストローク内のパケットのインデックスを作成します。
distanceFromPacket パラメーターは、点からストロークのエンベロープまでの距離を表します。 これは、2 つのポイントからストロークの幅の半分を引いた距離です。
要件
サポートされている最小のクライアント | Windows XP タブレット PC エディション [デスクトップ アプリのみ] |
サポートされている最小のサーバー | サポートなし |
対象プラットフォーム | Windows |
ヘッダー | msinkaut.h |
Library | InkObj.dll |