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

種類: D2D1_POINT_DESCRIPTION*

このメソッドが戻るとき、 には、指定された場所にあるポイントの説明が含まれます。

戻り値

種類: HRESULT

このメソッドは HRESULT を返します。 有効な値を次の表に示しますが、これ以外にもあります。

HRESULT 説明
S_OK エラーは発生していません。
E_OUTOFMEMORY Direct2D は、呼び出しを完了するのに十分なメモリを割り当てませんでした。
E_INVALIDARG 入力の 1 つが無効な範囲にありました。

解説

長さが 0 より小さいか、数値ではない場合は、0 のように扱われます。

length がパスの合計長より大きい場合は、パスの終点が返されます。

図の例

この例では、指定されたパス ジオメトリに対して返されるさまざまなパラメーターの値について説明します。 パス ジオメトリとその長さの図。 2 つの異なるシナリオを次に示します。

長さ L2 でセグメントを取得する

ComputePointAndSegmentAtLength(Length = L2, startSegment =0) を呼び出します。 API は次を返します。

パスに沿ってアニメーション化するために、特定の長さのポイントを計算するパフォーマンスを向上させたい

通常、時間間隔は小さく規則的であり、セグメントごとに多数のアニメーション ポイントが生成されます。 ただし、デモの目的では、ComputePointAndSegmentAtLength に対して 3 回クエリを実行し、長さが L1、L2、L3 が不規則であると想定します。

ComputePointAndSegmentAtLength(Length = L1, startSegment = 0) を呼び出します。 API は次を返します。

ComputePointAndSegmentAtLength(Length = L2 - Length(AB), startSegment = 1) を呼び出します。 API は次を返します。 ComputePointAndSegmentAtLength(= L3-length(AB)-length(BD), startSegment = 3) を呼び出します。 API は次を返します。

要件

   
サポートされている最小のクライアント Windows 8 および Windows 7 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2012 および Windows Server 2008 R2 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー d2d1_1.h
[DLL] D2d1.dll

関連項目

D2D1_MATRIX_3X2_F

D2D1_POINT_2F

D2D1_POINT_DESCRIPTION

ID2D1PathGeometry

ID2D1PathGeometry1