от
Я делаю программу, которая преобразует черно-белое изображение в виде дерева квадрантов, так я рекурсивно разделить прямоугольник на 4 части, которые не должны быть равными, но должны оставаться на целый ряд сетки. Что-то немного не в моей логике, что вызывает небольшие зазоры между случайными квадратов, и я не могу показаться, чтобы найти его. Это код, который разбивает прямоугольники врозь. Это помимо "узел" класса, который разделяет себя. Узлы в (Х,г) кортеж нижнем левом углу (хранится как само собой.мин), ширины, высоты, а затем его родителей.
def subDivide(self):
        newHeight = math.floor(self.height/2)
        newWidth = math.floor(self.width/2)

        newHeight2 = math.ceil(self.height/2)
        newWidth2 = math.ceil(self.width/2)

        self.children.append(node(self.min, newWidth, newHeight, self))
        self.children.append(
            node((self.min[0] newWidth2, self.min[1]), newWidth, newHeight, self))
        self.children.append(
            node((self.min[0] newWidth2, self.min[1] newHeight2), newWidth, newHeight, self))
        self.children.append(
            node((self.min[0], self.min[1] newHeight2), newWidth, newHeight, self))
        return self.children
Это код, который отображает прямоугольники. Этот метод принимает в кортеже из 8 цифр (которые являются значениями X и y каждой точки). Мои очки имеют свою ось Y перевернута, так что я флип их обратно с ABS(... - высота) (высота-это высота всей картины).
 pyglet.graphics.draw(4, pyglet.gl.GL_QUADS, ('v2f', (x.min[0], abs(x.min[1] 

Выход
Ожидаемые Результаты

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.
...