Как проверить близость к контуру QGraphicsPathItem? - PullRequest
7 голосов
/ 07 февраля 2010

Я пытаюсь проверить, находится ли данная точка (x, y) на или рядом с контуром из QGraphicsPathItem.

Использование QGraphicsItem.contains() или .collidesWithItem() / Path() не подойдет: они также возвращают True, если точка находится внутри области внутри пути, в то время как я хочу проверить только для точек на схеме. Как я могу это сделать?

1 Ответ

2 голосов
/ 07 февраля 2010

После публикации вопроса я нашел следующее решение:

    path = QPainterPath(...)   # Path we are testing against
    point = QPointF(...)       # Current position

    stroker = QPainterPathStroker()
    stroker.setWidth(10)        # Distance which we consider "on" the path 
    stroke = stroker.createStroke(path)

    if stroke.contains(point):
        # point is on path
...