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