Rect - Прямоугольник

class axipy.Rect

Прямоугольник, который не обладает геопривязкой. Используется для различного вида запросов.

Создание прямоугольника.
from axipy import Rect

rect = Rect(0, 0, 10, 5)
print(rect)
'''
>>> (0.0 0.0) (10.0 5.0)
'''

Конструктор класса:

__init__(xmin, ymin, xmax, ymax)

Классовые методы:

eq_approx(rect1, rect2[, precision])

Сравнивает два прямоугольника с заданной точностью.

from_qt(r)

Преобразует из формата Qt.

Свойства:

center

Устанавливает или возвращает центр прямоугольника.

height

Высота прямоугольника.

is_empty

Если один или оба размера равны нулю.

is_valid

Является ли прямоугольник правильным.

width

Ширина прямоугольника.

xmax

Устанавливает или возвращает максимальное значение X.

xmin

Устанавливает или возвращает минимальное значение X.

ymax

Устанавливает или возвращает максимальное значение Y.

ymin

Устанавливает или возвращает минимальное значение Y.

Методы:

contains(other)

Содержит ли полностью в своих границах переданный объект.

expanded(dx, dy)

Возвращает прямоугольник, увеличенный на заданные величины.

intersected(other)

Возвращает общий для обоих прямоугольник.

merge(other)

Возвращает прямоугольник, занимаемый обоими прямоугольниками.

normalize()

Исправляет прямоугольник, если его ширина или высота отрицательны.

to_qt()

Преобразование в формат Qt.

translated(dx, dy)

Возвращает прямоугольник, смещенный на заданную величину.

__init__(xmin: float, ymin: float, xmax: float, ymax: float)
property center: Pnt

Устанавливает или возвращает центр прямоугольника.

contains(other: Union[Pnt, QPointF, Rect, QRectF]) bool

Содержит ли полностью в своих границах переданный объект.

Параметры:

other – Переданный объект - точка или прямоугольник.

Пример.
r = Rect(0, 0, 10, 10)
print("contains (0, 0)", r.contains((0, 0)))
print("contains (15, 10)", r.contains((15, 10)))
print("contains (0, 0) (5, 5)", r.contains(Rect(0, 0, 5, 5)))
print("contains (0, 0) (15, 15)", r.contains(Rect(0, 0, 15, 15)))
'''
>>> contains (0, 0) True
>>> contains (15, 10) False
>>> contains (0, 0) (5, 5) True
>>> contains (0, 0) (15, 15) False
'''
classmethod eq_approx(rect1: Rect, rect2: Rect, precision: float = 1e-12) bool

Сравнивает два прямоугольника с заданной точностью.

Параметры:
  • rect1 – Первый прямоугольник сравнения

  • rect2 – Второй прямоугольник сравнения

  • precision – Точность сравнения

Результат:

True если прямоугольники равны

expanded(dx: float, dy: float) Rect

Возвращает прямоугольник, увеличенный на заданные величины. Увеличение размеров производится по отношению к центру, который не меняется в результате операции.

Параметры:
  • dx – расширение по X

  • dy – расширение по Y

Пример.
r = Rect(0, 0, 10, 10)
print(r.expanded(10, 10))
'''
>>> (-5.0 -5.0) (15.0 15.0)
'''
classmethod from_qt(r: Union[QRectF, QRect]) Optional[Rect]

Преобразует из формата Qt. Если класс не соответствует, возвращает None.

Параметры:

r – Преобразуемый прямоугольник.

property height: float

Высота прямоугольника.

intersected(other: Rect) Rect

Возвращает общий для обоих прямоугольник.

Параметры:

other – Прямоугольник, с которым производится операция.

Пример.
r1 = Rect(0, 0, 5, 10)
r2 = Rect(0, 0, 10, 5)
print(r1.intersected(r2))
'''
>>> (0.0 0.0) (5.0 5.0)
'''
property is_empty: bool

Если один или оба размера равны нулю.

property is_valid: bool

Является ли прямоугольник правильным.

merge(other: Rect) Rect

Возвращает прямоугольник, занимаемый обоими прямоугольниками.

Параметры:

other – Прямоугольник, с которым производится операция.

Пример.
r1 = Rect(0, 0, 5, 10)
r2 = Rect(0, 0, 10, 5)
print(r1.merge(r2))
'''
>>> (0.0 0.0) (10.0 10.0)
'''
normalize()

Исправляет прямоугольник, если его ширина или высота отрицательны.

Пример.
from PySide2.QtCore import QRect
r = Rect.from_qt(QRect(0, 5, -10, 10))
print(r)
print(r.is_valid)
r.normalize()
print(r)
print(r.is_valid)
'''
>>> (0.0 5.0) (-10.0 15.0)
>>> False
>>> (-10.0 5.0) (0.0 15.0)
>>> True
'''
to_qt() QRectF

Преобразование в формат Qt.

translated(dx: float, dy: float) Rect

Возвращает прямоугольник, смещенный на заданную величину.

Параметры:
  • dx – смещение по X

  • dy – смещение по Y

Пример.
r = Rect(0, 0, 10, 10)
print(r.translated(10, -10))
'''
>>> (10.0 -10.0) (20.0 0.0)
'''
property width: float

Ширина прямоугольника.

property xmax: float

Устанавливает или возвращает максимальное значение X.

property xmin: float

Устанавливает или возвращает минимальное значение X.

property ymax: float

Устанавливает или возвращает максимальное значение Y.

property ymin: float

Устанавливает или возвращает минимальное значение Y.