0
所以我在python中使用pyglet(opengl)做一个小项目。 当我点击屏幕上的一个点时,会生成一个Square,它可以从坐标中平等地展开。检查广场是否包含在另一个广场
因此,例如,如果我点击(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)
编辑:我的界限将是一个矩形。
对不起,忘了提及我的边界是矩形。 – Igglyboo
这也可以。所有正方形都是矩形。所以如果你的广场超过了一个角落边界线的价值,那么它就会在另一个角落。尽管如此,我应该更加宽泛。 – sten