私はPath
WPF を持っており、このパスの単一ポイントを取得したいと考えています。これはどういうわけか可能ですか?(WPF 組み込みの PathSegment を使用しました。WPF が計算したポイントを取得したいと思います)
ヒントをありがとう!
私はPath
WPF を持っており、このパスの単一ポイントを取得したいと考えています。これはどういうわけか可能ですか?(WPF 組み込みの PathSegment を使用しました。WPF が計算したポイントを取得したいと思います)
ヒントをありがとう!
Geometry.GetFlattenedPathGeometry
「 Geometry オブジェクトの多角形近似」を返します。次に、平坦化された Geometry の図形とセグメントを反復処理できます。各図形は単一ので構成されPolyLineSegment
ている必要があり、そこから Points プロパティを反復処理して、パスに沿ったポイントを取得できます。したがって:
PathGeometry g = Path.Data.GetFlattenedPathGeometry();
foreach (var f in g.Figures)
foreach (var s in f.Segments)
if (s is PolyLineSegment)
foreach (var pt in ((PolyLineSegment)s).Points)
Debug.WriteLine(pt);
WPF4 にはGetPointAtFractionLength
、0.0 ~ 1.0 の範囲のパスの長さに沿って、任意の点の座標とその接線ベクトルを取得できるメソッドもあります。
パスに沿って任意の数のポイントを「サンプリング」するのに非常に便利です。