Как получить Point.X в точке.Y на FlattenPathGeometry — WPF

#wpf #path #geometry #pathgeometry

#wpf #путь #геометрия #pathgeometry

Вопрос:

У меня есть «FlattenedPathGeometry», и я хочу иметь возможность получить определенную точку.X из пути, основанного на определенной Point.Y

По сути, мне просто нужно значение X в любом заданном Y.

Заранее спасибо за любую помощь.

Ответ №1:

GetFlattenedPathGeometry возвращает вам полигональный, поэтому в основном вам нужно рассмотреть все точки и вычислить минимальное расстояние до вашей точки. Если вы можете сделать какие-либо предположения о форме геометрии или вашей точке, вы можете ускорить поиск.

Например, если путь очень длинный, вы можете ускорить пересечение фигуры с кругом / квадратом с центром в вашей точке. Это ограничивает количество точек фигуры для тестирования, но будьте осторожны, что метод пересечения очень дорогой. Вам нужно будет измерить производительность с помощью секундомера, чтобы понять, что лучше в вашем случае.

Комментарии:

1. Это то, что я делаю прямо сейчас, и это просто не очень эффективно, но я полагаю, что если бы .NET предоставил метод для этого, они все равно использовали бы аналогичный подход. Лучше всего сделать мой поиск максимально эффективным.