繁体   English   中英

检查正方形是否包含在另一个正方形中

[英]Check if square is contained in another square

所以我正在使用pyglet(opengl)在python中做一个小项目。 当我单击屏幕上的一个点时,将生成一个从坐标均匀展开的正方形。

因此,例如,如果我单击(100,100),将从(99,99)绘制一个边长为3的正方形。每一代左下角将减少(-1,-1),边长将增加2 。

我想做的是有一种方法来检测正方形是否在窗口边界之外,以便可以从正方形集合中删除它。

我现在正在做的只是检查所有角落是否都在窗口内,但是必须有更好的方法来做到这一点? 我可以使用边长,正方形的中心和左下角的位置。

这是我的平方类,我正在查看的方法是in_bounds方法。 现在,它只是返回true。 以前我是在计算每个角,但我认为使用一个长度一定的点会更好。

class Square:

    def __init__(self, x, y, x_max, y_max):
        self.center = (x,y)
        self.point = (x-1, y-1)
        self.length = 3
        self.x_bound = x_max
        self.y_bound = y_max

    def next(self):
        self.point = (self.point[0] - 1, self.point[1] - 1)
        self.length += 2

    def in_bounds(self):
        return True
        #return not (self.top_left[0] < 0 and self.top_right[0] > self.xbound and self.bot_left[1] < 0 and self.top_left[1] > self.ybound)

编辑:我的边界将是一个矩形。

您只需三点即可做到。 给定边界内的一个点(例如左上角),您可以检查右上角在x的正方向上未超出边界,左下角在y的负方向上未超过边界。

但这假定边界是正方形。 第四个点不能超过已经测量的点的长度(x,y)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM