Я пытаюсь протестировать ли данная точка (x, y)
расположен на или близко к схеме a QGraphicsPathItem
.
Используя QGraphicsItem.contains()
или .collidesWithItem() / Path()
не сделает: они также возвращают True, если точка содержится в области на внутренней части пути, в то время как я хочу протестировать только на точки на схеме. Как я могу выполнить это?
После публикации вопроса я нашел следующее решение:
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