Stroke.FindIntersections メソッド
特定の Strokes コレクション内で、この Stroke オブジェクトが他の Stroke オブジェクトと交差するポイントを検出します。
名前空間 : Microsoft.Ink
アセンブリ : Microsoft.Ink (Microsoft.Ink.dll 内)
構文
'宣言
Public Function FindIntersections ( _
strokes As Strokes _
) As Single()
'使用
Dim instance As Stroke
Dim strokes As Strokes
Dim returnValue As Single()
returnValue = instance.FindIntersections(strokes)
public float[] FindIntersections(
Strokes strokes
)
public:
array<float>^ FindIntersections(
Strokes^ strokes
)
public float[] FindIntersections(
Strokes strokes
)
public function FindIntersections(
strokes : Strokes
) : float[]
パラメータ
- strokes
型 : Microsoft.Ink.Strokes
この Stroke オブジェクトとの交差部分のテストに使用される Strokes コレクション。nullnull 参照 (Visual Basic では Nothing) (Microsoft Visual Basic .NET では Nothing) の場合、Ink オブジェクト内のすべての Strokes コレクションを使用します。
戻り値
型 : array<System.Single[]
このメソッドは、交差部分の位置を示す浮動小数点インデックス値の配列を返します。
浮動小数点インデックスは、Stroke オブジェクト内の 2 つのポイントの間のある場所を表す浮動小数点値です。たとえば、0.0 がストローク内の最初のポイントで、1.0 がストローク内の 2 番目のポイントの場合、0.5 が最初のポイントと 2 番目のポイントの間の中間です。同様に、浮動小数点インデックス値 37.25 は、ストロークのポイント 37 と 38 の間の線に沿って 25 パーセント進んだ位置を表しています。
解説
メモ : |
---|
strokes パラメータ内の Strokes コレクションは、交差部分をテストする Stroke オブジェクトと同じ Ink オブジェクトから取得される必要があります。 |
このメソッドでは、交差部分のポイントのみを確認できます。
例
この例では、InkOverlay で選択された各 Stroke オブジェクトが調べられます。Stroke が、Ink オブジェクトのその他の Strokes コレクションとの間に少なくとも 1 つの交差部分を持つ場合、Stroke は交差部分の最初のポイントで分割されます。
' Access to the Strokes property returns a copy of the Strokes object.
' This copy must be implicitly (via using statement) or explicitly
' disposed of in order to avoid a memory leak.
Using allStrokes As Strokes = mInkOverlay.Ink.Strokes
For Each S As Stroke In mInkOverlay.Selection
' find the intersections
Dim intersections() As Single = S.FindIntersections(allStrokes)
' if we have at least 1 intersection, split the stroke
If intersections.Length > 0 Then
S.Split(intersections(0))
End If
Next
End Using
// Access to the Strokes property returns a copy of the Strokes object.
// This copy must be implicitly (via using statement) or explicitly
// disposed of in order to avoid a memory leak.
using (Strokes allStrokes = mInkOverlay.Ink.Strokes)
{
foreach (Stroke S in mInkOverlay.Selection)
{
// find the intersections
float[] intersections = S.FindIntersections(allStrokes);
// if we have at least 1 intersection, split the stroke
if (intersections.Length > 0)
{
S.Split(intersections[0]);
}
}
}
プラットフォーム
Windows Vista
.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。
バージョン情報
.NET Framework
サポート対象 : 3.0