# 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.

  Методы:

  `clone`() | Возвращает копию.
  `contains`(other) | Содержит ли полностью в своих границах переданный объект.
  `expanded`(dx, dy) | Возвращает прямоугольник, увеличенный на заданные величины.
  `intersected`(other) | Возвращает общий для обоих прямоугольник.
  `intersects`(other) | Проверяет, имеются ли пересечения с другим прямоугольником.
  `merge`(other) | Возвращает прямоугольник, занимаемый обоими прямоугольниками.
  `normalize`() | Исправляет прямоугольник, если его ширина или высота отрицательны.
  `to_qt`() | Преобразование в формат Qt.
  `translated`(dx, dy) | Возвращает прямоугольник, смещенный на заданную величину.

  Специальные методы:

  `__copy__`() | Поверхностная копия объекта.
  `__deepcopy__`([memo_dict]) | Глубокая копия объекта.
  `__eq__`(other) | Оператор равенства (==).
  `__format__`(format_spec) | Форматированное строковое представление.
  `__repr__`() | Официальное строковое представление объекта при вызове `repr()`.
  `__str__`() | Неформальное строковое представление объекта при вызове `str` или `print()`.

  __copy__() → Rect

    Поверхностная копия объекта. (функция `copy.copy()`)

  __deepcopy__(memo_dict: Optional[dict] = None) → Rect

    Глубокая копия объекта. (функция `copy.deepcopy()`)

  __eq__(other: object) → bool

    Оператор равенства (==).

  __format__(format_spec: str) → str

    Форматированное строковое представление.

  __init__(xmin: float, ymin: float, xmax: float, ymax: float)

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

    Параметры:

      - xmin – Минимальное значение X.

      - ymin – Минимальное значение Y.

      - xmax – Максимальное значение X.

      - ymax – Максимальное значение Y.

  __repr__() → str

    Официальное строковое представление объекта при вызове `repr()`.

  __str__() → str

    Неформальное строковое представление объекта при вызове `str` или `print()`.

  property center: Pnt

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

  clone() → Rect

    Возвращает копию.

  contains(other: Union[Pnt, Tuple[float, float], QPointF, Rect, Tuple[float, float, float, float], QRectF, QRect]) → 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[QRect, QRectF]) → Rect

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

    Параметры:

      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)
        '''

  intersects(other: Rect) → bool

    Проверяет, имеются ли пересечения с другим прямоугольником.

    Параметры:

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

  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.