您尚未登录。

楼主 #1 2020-02-21 15:11:34

pythinker
会员
注册时间: 2019-02-12
已发帖子: 215
积分: 215

请问Qt如何判断一个点是否在多边形内部呢?

如题

离线

楼主 #3 2020-02-21 17:06:06

pythinker
会员
注册时间: 2019-02-12
已发帖子: 215
积分: 215

Re: 请问Qt如何判断一个点是否在多边形内部呢?

太感谢楼上的胸弟了, 根据关键字搜索到, 自己撸了几行测试, 没毛病

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

离线

楼主 #6 2020-02-22 15:46:22

pythinker
会员
注册时间: 2019-02-12
已发帖子: 215
积分: 215

Re: 请问Qt如何判断一个点是否在多边形内部呢?

Quotation 说:

Qt里有两种算法。比较好理解的一种经典算法是,过该点画一条穿过多边形的直线,数一数和几条边相交。为奇数则点在多边形内。

嗯,谢谢,我去再补一补算法基础知识。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn