ID2D1PathGeometry1::ComputePointAndSegmentAtLength(FLOAT,UINT32,constD2D1_MATRIX_3X2_F*,FLOAT,D2D1_POINT_DESCRIPTION*) メソッド (d2d1_1.h)
パス ジオメトリに沿って指定された距離に存在するポイントを、ポイントがオンになっているセグメントのインデックスと、そのポイントの方向ベクトルと共に計算します。
構文
HRESULT ComputePointAndSegmentAtLength(
FLOAT length,
UINT32 startSegment,
[in, optional] const D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance,
[out] D2D1_POINT_DESCRIPTION *pointDescription
);
パラメーター
length
型: FLOAT
パスに沿って歩く距離。
startSegment
型: UINT
歩き始めるセグメントのインデックス。 注: このインデックスは、特定の図だけでなく、パス全体に対してグローバルです。
[in, optional] worldTransform
型: const D2D1_MATRIX_3X2_F*
歩く前にパスに適用する変換。
flatteningTolerance
型: FLOAT
円弧またはベジエ セグメントに沿って歩くときに使用するフラット化許容値。 平坦化許容値は、ジオメトリの多角形近似を構築するときに許容される最大誤差です。 ポリゴン表現のポイントは、フラット化許容値を超えることで元のジオメトリから分岐しません。 値が小さいほど、生成される結果の精度は高まりますが、実行速度が低下します。
[out] pointDescription
このメソッドが戻るとき、 には、指定された場所にあるポイントの説明が含まれます。
戻り値
種類: HRESULT
このメソッドは HRESULT を返します。 有効な値を次の表に示しますが、これ以外にもあります。
HRESULT | 説明 |
---|---|
S_OK | エラーは発生していません。 |
E_OUTOFMEMORY | Direct2D は、呼び出しを完了するのに十分なメモリを割り当てませんでした。 |
E_INVALIDARG | 入力の 1 つが無効な範囲にありました。 |
解説
長さが 0 より小さいか、数値ではない場合は、0 のように扱われます。
length がパスの合計長より大きい場合は、パスの終点が返されます。
図の例
この例では、指定されたパス ジオメトリに対して返されるさまざまなパラメーターの値について説明します。 2 つの異なるシナリオを次に示します。長さ L2 でセグメントを取得する
ComputePointAndSegmentAtLength(Length = L2, startSegment =0) を呼び出します。 API は次を返します。- D2D1_POINT_DESCRIPTION::p oint = p2。
- D2D1_POINT_DESCRIPTION::endSegment = 3 (セグメント DE)。 これは目的の値です。
- D2D1_POINT_DESCRIPTION::lengthToEndSegment = length (AD)。
パスに沿ってアニメーション化するために、特定の長さのポイントを計算するパフォーマンスを向上させたい
通常、時間間隔は小さく規則的であり、セグメントごとに多数のアニメーション ポイントが生成されます。 ただし、デモの目的では、ComputePointAndSegmentAtLength に対して 3 回クエリを実行し、長さが L1、L2、L3 が不規則であると想定します。ComputePointAndSegmentAtLength(Length = L1, startSegment = 0) を呼び出します。 API は次を返します。
- D2D1_POINT_DESCRIPTION::p oint = P1。
- D2D1_POINT_DESCRIPTION::endSegment = 1 (セグメント BC)。
- D2D1_POINT_DESCRIPTION::lengthToEndSegment = length (AB)。
- D2D1_POINT_DESCRIPTION::p oint = P2。
- D2D1_POINT_DESCRIPTION::endSegment = 3 (セグメント DE)。
- D2D1_POINT_DESCRIPTION::lengthToEndSegment = length (AD)。
- D2D1_POINT_DESCRIPTION::p oint = P3。
- D2D1_POINT_DESCRIPTION::endSegment = 3 (セグメント DE)。
- D2D1_POINT_DESCRIPTION::lengthToEndSegment =0。
要件
サポートされている最小のクライアント | Windows 8 および Windows 7 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2012 および Windows Server 2008 R2 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | d2d1_1.h |
[DLL] | D2d1.dll |
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示