WPF: получить отдельные точки пути? - PullRequest
3 голосов
/ 15 апреля 2010

У меня есть Path в WPF, и я хотел бы получить отдельные точки этого пути. Это как-то возможно? (Я использовал встроенный в WPF PathSegment и хотел бы получить баллы, рассчитанные WPF)

Спасибо за любую подсказку!

Ответы [ 2 ]

10 голосов
/ 15 апреля 2010

Geometry.GetFlattenedPathGeometry возвращает " полигональную аппроксимацию объекта 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);
2 голосов
/ 19 ноября 2010

В WPF4 также есть метод GetPointAtFractionLength, который позволяет получить координаты любой точки и ее касательного вектора по длине пути в диапазоне от 0,0 до 1,0.

Очень удобно для "выборки" произвольного количества точек вдоль пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...