我在检查坐标是否在矩形内时遇到问题。我需要检查特定对象是否在某个坐标范围内。例如,给定下面的矩形:
以红色突出显示的坐标和我的蓝色物体的坐标,我可以通过这样做检查我的物体是否在矩形内(这是我能想到的最简单的解决方案):
if xa > x1 and xd < x4 and ya > y1 and yb < y2:
#success
假设我的原点位于图片的左上角,这始终是真的:xa = xb
,xd = xc
,ya = yd
和yb = yc
,这非常简单。
我的矩形旋转时遇到问题,如下图所示:
我总是拥有所有坐标,红色和蓝色的物体。在这种情况下哪一个是最有效的方法?
我使用过Python代码,但这更像是一个逻辑问题,我无法真正找到解决方案。
提前谢谢
答案 0 :(得分:1)
尽管回答得有点晚,但请注意,您始终可以找到平面上任意两个已知点之间的直线(即超平面)。特别是,您可以定义外部矩形的所有线段所属的直线(即,包含(x1,y1)和(x2,y2)的直线,包含(x2,y2)和(x3,y3)等)。一旦有了任何一条这样的线的方程式,就可以检查特定点是位于该线的“上方”,“下方”还是内部。通过使用与简单情况相同的逻辑,可以确定特定点是否属于矩形(也就是说,如果该点位于通过点(x1,y1)和(x4)的直线之内或之下,y4),穿过点(x2,y2)和(x3,y3)等的线的上方或内部)。