Генерирую прямоугольники под случайным углом.
Размер картинки 640*480. Генерю центр в этих пределах и длины с шириной в пределах от 150 до 250. Как предотвратить выход за границы? Нужно, чтобы полностью лежал внутри. Код функции, генерирующей координаты прямоугольника:
def create_rect():
x, y = (np.random.randint(0, 640), np.random.randint(0, 480))
w = np.random.randint(150, 250)
h = np.random.randint(150, 250)
angle = rand_angle()
rotmat = np.array([[np.cos(angle), -np.sin(angle)],
[np.sin(angle), np.cos(angle)]])
rectangle = np.array([[x-w/2, y-h/2],
[x+w/2, y-h/2],
[x+w/2, y+h/2],
[x-w/2, y+h/2]]).T
rot_rect = rotmat @ rectangle
x1y1 = (rot_rect[0][0], rot_rect[1][0])
x2y2 = (rot_rect[0][1], rot_rect[1][1])
x3y3 = (rot_rect[0][2], rot_rect[1][2])
x4y4 = (rot_rect[0][3], rot_rect[1][3])
return x1y1, x2y2, x3y3, x4y4