如题
离线
太感谢楼上的胸弟了, 根据关键字搜索到, 自己撸了几行测试, 没毛病
from PySide2.QtCore import QPointF, Qt
from PySide2.QtGui import QPolygonF
poly = QPolygonF([QPointF(0.0, 0.0), QPointF(0.0, -100.0), QPointF(100.0, -100.0), QPointF(100.0, 0.0)])
print(poly.containsPoint(QPointF(50, -50.0), Qt.FillRule.WindingFill))
print(poly.containsPoint(QPointF(99, -99.0), Qt.FillRule.WindingFill))
print(poly.containsPoint(QPointF(99, -101.0), Qt.FillRule.WindingFill))
结果正确:
True
True
False
离线
Qt里有两种算法。比较好理解的一种经典算法是,过该点画一条穿过多边形的直线,数一数和几条边相交。为奇数则点在多边形内。
嗯,谢谢,我去再补一补算法基础知识。
离线