Share via


ID2D1PathGeometry1::ComputePointAndSegmentAtLength(FLOAT,UINT32,constD2D1_MATRIX_3X2_F*,FLOAT,D2D1_POINT_DESCRIPTION*)-Methode (d2d1_1.h)

Berechnet den Punkt, der in einer bestimmten Entfernung entlang der Pfadgeometrie vorhanden ist, zusammen mit dem Index des Segments, auf dem sich der Punkt befindet, und dem Richtungsvektor an diesem Punkt.

Syntax

HRESULT ComputePointAndSegmentAtLength(
                 FLOAT                   length,
                 UINT32                  startSegment,
  [in, optional] const D2D1_MATRIX_3X2_F *worldTransform,
                 FLOAT                   flatteningTolerance,
  [out]          D2D1_POINT_DESCRIPTION  *pointDescription
);

Parameter

length

Typ: FLOAT

Die Entfernung, die entlang des Pfads zu gehen ist.

startSegment

Typ: UINT

Der Index des Segments, an dem mit dem Gehen begonnen werden soll. Hinweis: Dieser Index ist global für den gesamten Pfad, nicht nur für eine bestimmte Abbildung.

[in, optional] worldTransform

Typ: const D2D1_MATRIX_3X2_F*

Die Transformation, die vor dem Gehen auf den Pfad angewendet werden soll.

flatteningTolerance

Typ: FLOAT

Die Abflachungstoleranz, die beim Gehen entlang eines Bogens oder Béziersegments verwendet werden soll. Die Toleranz für die Abflachung ist der maximale Fehler, der beim Erstellen einer polygonalen Näherung der Geometrie zulässig ist. Kein Punkt in der polygonalen Darstellung weicht von der ursprünglichen Geometrie um mehr als die Abflachungstoleranz ab. Kleinere Werte liefern genauere Ergebnisse, führen jedoch zu einer langsameren Ausführung.

[out] pointDescription

Typ: D2D1_POINT_DESCRIPTION*

Wenn diese Methode zurückgibt, enthält eine Beschreibung des Punkts, der an der angegebenen Position gefunden werden kann.

Rückgabewert

Typ: HRESULT

Die Methode gibt ein HRESULT zurück. Mögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle.

HRESULT BESCHREIBUNG
S_OK Kein Fehler ist aufgetreten.
E_OUTOFMEMORY Direct2D konnte nicht genügend Arbeitsspeicher zuweisen, um den Aufruf abzuschließen.
E_INVALIDARG Einer der Eingaben befand sich in einem ungültigen Bereich.

Hinweise

Eine Länge , die kleiner als 0 ist oder keine Zahl ist, wird so behandelt, als wäre sie 0.

Wenn die Länge größer als die Gesamtlänge des Pfads ist, wird der Endpunkt des Pfads zurückgegeben.

Beispieldarstellung

Betrachten Sie dieses Beispiel, das den Wert der verschiedenen Parameter erläutert, die für die angegebene Pfadgeometrie zurückgegeben werden. Ein Diagramm einer Pfadgeometrie und ihrer Längen. Hier sind zwei verschiedene Szenarien.

Sie möchten das Segment mit einer Länge L2 abrufen.

Sie rufen ComputePointAndSegmentAtLength(Length = L2, startSegment =0) auf. Die API gibt Folgendes zurück:

Sie möchten die Leistung beim Berechnen eines Punkts in einer bestimmten Länge zum Animieren entlang eines Pfads verbessern.

Normalerweise sind die Zeitintervalle klein und regelmäßig, was zu vielen Animationspunkten pro Segment führt. Für die Zwecke der Demonstration gehen wir jedoch davon aus, dass Sie ComputePointAndSegmentAtLength dreimal mit unregelmäßigen Abständen L1, L2, L3 abfragen:

Sie rufen ComputePointAndSegmentAtLength(Length = L1, startSegment = 0) auf. Die API gibt Folgendes zurück:

Sie rufen ComputePointAndSegmentAtLength(Length = L2 - Length(AB), startSegment = 1 auf. Die API gibt Folgendes zurück: Sie rufen ComputePointAndSegmentAtLength(= L3-length(AB)-length(BD), startSegment = 3) auf. Die API gibt Folgendes zurück:

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 8 und Plattformupdate für Windows 7 [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 und Plattformupdate für Windows Server 2008 R2 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile d2d1_1.h
DLL D2d1.dll

Weitere Informationen

D2D1_MATRIX_3X2_F

D2D1_POINT_2F

D2D1_POINT_DESCRIPTION

ID2D1PathGeometry

ID2D1PathGeometry1