矩形测试困境中的点
point in rectangle test dilemma
如果您查看 Qt 关于矩形点测试的文档,他们会说:
bool QRectF::contains(const QPointF & point) const
Returns true if the given point is inside or on the edge of the
rectangle; otherwise returns false.
这不可避免地意味着一个点可能同时属于最多 4 个彼此相邻的矩形。是否存在支持这种排列的论据,或者矩形仅包含某些边缘上的点(例如,左上角)会更好吗?
文档说 "edges" 而不是 "corners"。通常边表示一条线,而角或顶点表示一个点。
如果你想排除边缘,QRect
版本的 contains()
可以做到。
您也可以编写自己的 contains()
并使用 QRectF::topLeft()
检查该点是否在左上角。
矩形也可能相交,所以一个点可以同时包含在任意数量的矩形中。
如果您查看 Qt 关于矩形点测试的文档,他们会说:
bool QRectF::contains(const QPointF & point) const
Returns true if the given point is inside or on the edge of the rectangle; otherwise returns false.
这不可避免地意味着一个点可能同时属于最多 4 个彼此相邻的矩形。是否存在支持这种排列的论据,或者矩形仅包含某些边缘上的点(例如,左上角)会更好吗?
文档说 "edges" 而不是 "corners"。通常边表示一条线,而角或顶点表示一个点。
如果你想排除边缘,QRect
版本的 contains()
可以做到。
您也可以编写自己的 contains()
并使用 QRectF::topLeft()
检查该点是否在左上角。
矩形也可能相交,所以一个点可以同时包含在任意数量的矩形中。