[英]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.