2010-04-15 23 views

回答

10

Geometry.GetFlattenedPathGeometry返回然後可以遍歷扁平幾何的附圖和段「幾何對象的多邊形近似。」:各圖中應包括一個單一的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); 
+0

感謝您的回覆,並對我遲到的回覆感到抱歉。我只是檢查了這一點,不幸的是它不能正常工作。在我的情況下,我有一個二次貝塞爾段,我得到的每個約30的x dfference的點,而差異不應該超過1): – 2010-05-16 16:12:49

2

在WPF4還有的方法GetPointAtFractionLength,它可以讓你得到任何點的座標,並沿着路徑範圍從0.0的長度在它的切線向量 - 1.0。

非常方便「採樣」沿路徑的任意數量的點。