如何检查一个矩形的质心是否存在于另一个矩形内?

How to check if centroid of one rectangle is present inside another rectangle?

我有一个矩形ABCD。我通过将高度和宽度除以 3 将矩形分成 9 个相等的部分。现在我得到 9 个矩形。如果我考虑这 9 个矩形 ABCD_1 中的一个,坐标 = 166、104、332、156。除此之外,我还有另一个矩形 PQRS,其质心 = 377.5、489.0。我想确定给定的质心是否存在于矩形 ABCD_1 内。如何解决这个问题。

我是 Python 的初学者。任何帮助将不胜感激。谢谢!!!

假设你的矩形坐标表示为一个数组[x1,y1,y2,x2] 并指向 [x,y] 然后我们将首先检查 x 是否位于矩形的 x 坐标之间,如果是,那么我们将检查它们是否位于 y 坐标之间,如果为真,则该点位于矩形内,否则不位于。 abcd 下面是你的矩形,p 是点。

abcd=[166, 104, 332, 156]
p=[377.5, 489.0]

if p[0]>=abcd[0] and p[0]<=abcd[3]:
    if p[1]>=abcd[1] and p[0]<=abcd[2]:
        print('Inside')
else:
    print('Outside')

根据您给出的四个数字,我猜它是一个边平行于 x 轴和 y 轴的矩形。如果你的数字是 (x1, y1), (x2, y2) 两个对角,和 P = (x, y),你的逻辑应该是

if x1 < x < x2 and y1 < y < y2:
    is_in_rect = True

其中x1 < x2y1 < y2(需要根据哪个数字较大来调整比较)

所有 x1, y1, x2, y2 where x1!=x2, y1!=y2,

if (x1 < x < x2 if x1 < x2 else x2 < x < x1) and \
   (y1 < y < y2 if y1 < y2 else y2 < y < y1):
    is_in_rect = True