Главная » 2025 » Ноябрь » 23 » Класс UPoint: координаты точки (тип int)
19:25
Класс UPoint: координаты точки (тип int)

Класс UPoint: координаты точки (тип int)

Класс UPoint описывает целочисленные координаты точки в двумерном пространстве. Инструкция импорта:

from unicross_image.uhelper import UPoint

Форматы конструктора класса:

UPoint()
UPoint(x, y)
UPoint( (x, y) )
UPoint(upoint)

Первый конструктор создает объект с нулевыми координатами:

p = UPoint()
print(p)        # UPoint(x=0, y=0)
print(repr(p))  # (0, 0)

Вместо этого конструктора можно использовать статический метод ZERO():

p = UPoint.ZERO()
print(p)        # UPoint(x=0, y=0)
print(repr(p))  # (0, 0)

Во втором конструкторе указываются две координаты через запятую. Если значения не могут быть приведены к целому числу, то будет сгенерировано исключение. Пример:

p = UPoint(10, 20)
print(p)        # UPoint(x=10, y=20)
print(repr(p))  # (10, 20)

В третьем конструкторе координаты указываются в виде кортежа или списка. Если значения не могут быть приведены к целому числу, то будет сгенерировано исключение. Пример:

p = UPoint( (10, 20) )
print(p)        # UPoint(x=10, y=20)
p = UPoint( [30, 40] )
print(p)        # UPoint(x=30, y=40)

Четвертый конструктор создает объект на основе другого объекта класса UPoint:

p1 = UPoint( (10, 20) )
p2 = UPoint(p1)
print(p2)        # UPoint(x=10, y=20)

Сравнить два объекта UPoint можно с помощью операторов == и !=:

p1 = UPoint(10, 20)
p2 = UPoint(10, 20)
p3 = UPoint(30, 40)
print(p1 == p2)  # True
print(p1 == p3)  # False

print(p1 != p2)  # False
print(p1 != p3)  # True

Класс UPoint поддерживает итерации, поэтому объект можно преобразовать в кортеж или список, а также перебрать поэлементно с помощью циклов:

p = UPoint(1, 2)
print(tuple(p))    # (1, 2)
print(list(p))     # [1, 2]
for i in p:
    print(i, end=", ")
# 1, 2,

Пример распаковки объекта:

p = UPoint(10, 20)
x, y = p
print(x, y) # 10 20

Перечислим методы класса UPoint:

  • get_x() и get_y() — возвращают координаты по осям X и Y соответственно. Пример:
p = UPoint(10, 20)
print(p.get_x())  # 10
print(p.get_y())  # 20
  • get_point() — возвращает координаты в виде кортежа. Пример:
p = UPoint(10, 20)
print(p.get_point())  # (10, 20)

Можно также преобразовать объект в кортеж с помощью функции tuple() или выполнить распаковку:

p = UPoint(10, 20)
print(tuple(p))    # (10, 20)
x, y = p
print(x, y)        # 10 20
  • get_upoint() — создает копию объекта. Пример:
p = UPoint(10, 20)
print(p.get_upoint())  # UPoint(x=10, y=20)
  • get_upointf() — создает объект UPointF с вещественными координатами на основе текущего объекта. Пример:
p = UPoint(10, 20)
print(p.get_upointf())  # UPointF(x=10.0, y=20.0)
  • add(upoint) — сложение векторов. Пример:
p1 = UPoint(30, 40)
p2 = UPoint(10, 20)
print(p1.add(p2))  # UPoint(x=40, y=60)

Можно также воспользоваться оператором +:

p1 = UPoint(30, 40)
p2 = UPoint(10, 20)
print(p1 + p2)  # UPoint(x=40, y=60)
  • subtract(upoint) — вычитание векторов. Пример:
p1 = UPoint(30, 40)
p2 = UPoint(10, 20)
print(p1.subtract(p2))  # UPoint(x=20, y=20)

Можно также воспользоваться оператором -:

p1 = UPoint(30, 40)
p2 = UPoint(10, 20)
print(p1 - p2)  # UPoint(x=20, y=20)
  • multiply(factor) — умножение вектора на скаляр. Пример:
p = UPoint(10, 20)
print(p.multiply(5))  # UPoint(x=50, y=100)

Можно также воспользоваться оператором *:

p = UPoint(10, 20)
print(p * 5)   # UPoint(x=50, y=100)
  • division(factor) — целочисленное деление вектора на целочисленный скаляр. Пример:
p = UPoint(10, 20)
print(p.division(5))  # UPoint(x=2, y=4)

Если значение параметра равно 0,то возвращается значение None:

p = UPoint(10, 20)
print(p.division(0))  # None

Можно также воспользоваться оператором /:

p = UPoint(10, 20)
print(p / 5)   # UPoint(x=2, y=4)
print(p / 0)   # None
  • magnitude() — возвращает длину вектора. Пример:
import math
p = UPoint(10, 20)
print(p.magnitude())                  # 22.360679774997898
print(math.sqrt(10 ** 2 + 20 ** 2))   # 22.360679774997898
  • distance(upoint) — возвращает расстояние между двумя точками. Пример:
p1 = UPoint(10, 20)
p2 = UPoint(50, 20)
p3 = UPoint(10, 20)
print(p1.distance(p2)) # 40.0
print(p1.distance(p3)) # 0.0
  • rotate(deg) — поворот против часовой стрелки на deg градусов. Положительная ось Y направлена вверх, как в традиционной математике. Возвращается новый объект UPoint. Пример:
p = UPoint(10, 20)
print(p.rotate(180)) # UPoint(x=-10, y=-20)
  • rotate_about(p, deg) — поворот против часовой стрелки на deg градусов относительно точки p. Положительная ось Y направлена вверх, как в традиционной математике. Возвращается новый объект UPoint. Пример:
p = UPoint(10, 20)
p2 = UPoint(0, 0)
print(p.rotate_about(p2, 180)) # UPoint(x=-10, y=-20)

Класс входит в состав графической библиотеки UImage для Python 3. Описание библиотеки UImage

Категория: UImage | Просмотров: 3 | Добавил: unicross | Теги: UImage, UPoint | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Категории раздела
Списки слов [10]
Списки слов и словари
OCR [4]
Оптическое распознавание символов
UImage [18]
Графическая библиотека для Python
Программы [4]
Полезные программы
Прочее [3]
Другие темы
Календарь
«  Ноябрь 2025  »
Пн Вт Ср Чт Пт Сб Вс
     12
3456789
10111213141516
17181920212223
24252627282930
Архив записей