【问题标题】:point in rectangle test dilemma矩形测试困境中的点
【发布时间】:2015-03-16 20:10:15
【问题描述】:

如果您查看 Qt 的关于点内矩形测试的文档,他们会说:

bool QRectF::contains(const QPointF & point) const

如果给定点在边缘内部或边缘,则返回 true 长方形;否则返回 false。

这不可避免地意味着一个点最多可能同时属于彼此相邻的 4 个矩形。是否存在支持这种安排的论据,或者矩形只包含某些边缘(例如左上角)上的点会更好吗?

【问题讨论】:

    标签: qt user-interface language-agnostic rectangles


    【解决方案1】:

    文档说的是“边缘”而不是“角落”。通常edge表示一条线,而corner或vertex表示一个点。

    如果你想排除边,QRect 版本的contains() 可以做到这一点。

    你也可以自己写contains(),用QRectF::topLeft()检查点是否在左上角。

    矩形也可以相交,所以一个点可以同时包含在任意数量的矩形中。

    【讨论】:

    • 角在边缘。请扩大你的答案。
    • 说“左上角”时你是否也边缘化了?
    • 是的,假设一个点恰好位于顶部或左侧边缘,那么它将属于具有左上角约定的矩形。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    • 1970-01-01
    • 1970-01-01
    • 2011-08-30
    • 1970-01-01
    相关资源
    最近更新 更多