Кратчайшее расстояние между QPainterPath и QPoint

у меня есть QPainterPath который может содержать любую последовательность линий и / или кубических кривых Безье. Теперь у меня есть QPoint что мне нужно рассчитать кратчайшее расстояние между QPainterPath и точка. Так как сам путь не делает намного больше, чем сохранение элементов для того, чтобы я добавил их в путь, он сам по себе не обеспечивает такую ​​функциональность. Единственная идея, которую я имел, состояла в том, чтобы построить многоугольник, используя QPainterPath::toFillPolygon(), но иногда мне возвращается многоугольник, равный пути, а иногда пустой многоугольник. Кроме того, QPolygonF Объект — это просто список точек, некоторые из которых связаны линиями, а некоторые не связаны в исходном пути, но я не могу выяснить, какие из них связаны, а какие нет.

Есть ли (простое) решение для расчета кратчайшего расстояния между QPainterPath (предпочтительно без преобразования в многоугольник) и QPoint?

3

Решение

QPainterPath имеет pointAtPercent() так что вы можете повторить путь на данном шаге и проверить расстояния между количеством точек, лежащих на пути, и целевой точкой.

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]