检查坐标是否在矩形内部。

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

enter image description here

获得红色高亮显示的坐标和我的蓝色对象的坐标后,我可以通过执行以下操作(这是我能想到的最简单的解决方案)来检查对象是否在矩形内:
if xa > x1 and xd < x4 and ya > y1 and yb < y2:
    #success

假设我的起点在图像的左上角,那么以下内容始终成立:xa = xbxd = xcya = ydyb = yc,这很简单明了。
当我的矩形旋转时,我遇到了问题,就像下面的图片一样: enter image description here 我的对象的所有坐标都是红色和蓝色的。在这种情况下,哪种方法最有效?
我已经使用了Python代码,但这更多是一个逻辑问题,我真的找不到解决方案。
提前感谢您。

4
我认为这个链接可以帮助你。检查蓝色矩形的所有顶点是否在“红色”矩形内部即可。 - Yevhen Kuzmovych
1个回答

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接