كيفية اختبار القرب من مخطط qgraphicspathitem؟
-
19-09-2019 - |
سؤال
أحاول اختبار ما إذا كانت هناك نقطة معينة (x, y)
يقع في أو بالقرب من الخطوط العريضة من أ QGraphicsPathItem
.
استخدام QGraphicsItem.contains()
أو .collidesWithItem() / Path()
لن تفعل: أولئك الذين يعودون أيضا صحيحا إذا تم احتواء النقطة داخل المنطقة على الداخل من المسار، بينما أريد اختبار النقاط فقط على الخطوط العريضة. كيف يمكنني تحقيق ذلك؟
المحلول
بعد نشر السؤال، وجدت الحل التالي:
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
لا تنتمي إلى StackOverflow