【问题标题】:Check if coordinates are within a rectangle检查坐标是否在矩形内
【发布时间】:2017-01-21 15:20:00
【问题描述】:

我在检查坐标是否在矩形内时遇到问题。我需要检查特定对象是否在某个坐标范围内。例如,给定下面的矩形:

用红色突出显示坐标和蓝色对象的坐标,我可以检查我的对象是否在矩形内,方法是(这是我能想到的最简单的解决方案):

if xa > x1 and xd < x4 and ya > y1 and yb < y2:
    #success

假设我的原点位于图像的左上角,这始终是正确的:xa = xbxd = xcya = ydyb = yc,这非常简单。

我的矩形旋转时遇到问题,如下图所示:

我总是拥有我的对象的所有坐标,红色和蓝色。在这种情况下,哪种方法最有效?

我使用过 Python 代码,但这更像是一个逻辑问题,我真的找不到解决方案。

提前谢谢你

【问题讨论】:

  • 我认为this 可能会有所帮助。检查蓝色矩形的所有顶点是否都在“红色”矩形内。

标签: python logic coordinates


【解决方案1】:

虽然答案有点晚,但请注意,您总能找到平面上任意两个已知点之间的直线(即超平面)。特别是可以定义外矩形的所有线段所属的直线(即包含(x1,y1)和(x2,y2)的直线,包含(x2,y2)和(x3,y3) 等等)。一旦有了任何此类线的方程式,您就可以检查特定点是否位于此类线的“上方”、“下方”或内部。通过使用与简单情况相同的逻辑,您可以确定特定点是否属于矩形(即,如果该点位于通过点 (x1,y1) 和 (x4) 的直线的内部或下方,y4),在通过点 (x2,y2) 和 (x3,y3) 等的线的上方或内部。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-29
    相关资源
    最近更新 更多