Spec-Zone.ru › Pygame
pygame.math
pygame модуль для классов векторов

Модуль pygame math в настоящее время предоставляет классы векторов в двух и трёх измерениях, Vector2 и Vector3 соответственно.

Они поддерживают следующие числовые операции: vec + vec, vec - vec, vec * number, number * vec, vec / number, vec // number, vec += vec, vec -= vec, vec *= number, vec /= number, vec //= number, round(vec, ndigits=0).

Все эти операции будут выполняться поэлементно. Кроме того, vec * vec выполнит скалярное произведение (также известное как скалярное произведение). Если вы хотите умножить каждый элемент вектора v на каждый элемент вектора w, вы можете использовать поэлементный метод: v.elementwise() * w

Координаты вектора можно получить или установить с помощью атрибутов или индексов

v = pygame.Vector3()

v.x = 5
v[1] = 2 * v.x
print(v[1]) # 10

v.x == v[0]
v.y == v[1]
v.z == v[2]

Несколько координат можно установить, используя срезы или сдвиги

v = pygame.Vector2()
v.xy = 1, 2
v[:] = 1, 2

Новое в pygame 1.9.2pre.

Изменено в pygame 1.9.4: Удалено экспериментальное уведомление.

Изменено в pygame 1.9.4: Разрешена скалярная конструкция, например GLSL Vector2(2) == Vector2(2.0, 2.0)

Изменено в pygame 1.9.4: pygame.math импорт не требуется. Более удобные pygame.Vector2 и pygame.Vector3.

Изменено в pygame 2.2.0: round возвращает новый вектор с компонентами, округлёнными до указанного количества знаков после запятой.

pygame.math.clamp()
возвращает значение, ограниченное min и max.
clamp(value, min, max) -> float

Экспериментально: функция всё ещё находится в разработке, доступна для тестирования и обратной связи. Она может измениться. Пожалуйста, оставьте обратную связь по clamp авторам

Ограничивает числовое value таким образом, чтобы оно не было меньше min, и не было больше max.

Новое в pygame 2.1.3.

pygame.math.lerp()
линейная интерполяция между двумя значениями с весом.
lerp(a, b, weight) -> float

Линейно интерполирует между a и b с помощью weight по формуле a + (b-a) * weight.

Если weight равно 0.5, lerp вернёт значение, находящееся ровно посередине между a и b. Когда a = 10 и b = 20, lerp(a, b, 0.5) вернёт 15. Вы можете рассматривать вес как процент интерполяции от a до b, 0.0 являясь 0%, а 1.0 — 100%.

lerp может использоваться для многих вещей. Вы можете вращать спрайт по весу с помощью angle = lerp(0, 360, weight). Вы даже можете масштабировать значение атаки врага на основе уровня, на котором вы играете:

FINAL_LEVEL = 10
current_level = 2

attack = lerp(10, 50, current_level/MAX_LEVEL) # 18

Если вы находитесь на уровне 0, attack будет 10, если вы находитесь на уровне 10, attack будет 50. Если вы находитесь на уровне 5, результат current_level/MAX_LEVEL будет 0.5, что соответствует 50%, поэтому attack будет 30, что является серединой между 10 и 50.

Возбуждает ValueError, если weight находится вне диапазона [0, 1].

Новое в pygame 2.1.3.

pygame.math.Vector2
Вектор 2-мерного пространства
Vector2() -> Vector2(0, 0)
Vector2(int) -> Vector2
Vector2(float) -> Vector2
Vector2(Vector2) -> Vector2
Vector2(x, y) -> Vector2
Vector2((x, y)) -> Vector2

Некоторая общая информация о классе Vector2.

Изменено в pygame 2.1.3: Наследуемые методы подклассов векторов теперь корректно возвращают экземпляр подкласса, а не суперкласса

dot()
вычисляет скалярное произведение с другим вектором
dot(Vector2) -> float
cross()
вычисляет векторное произведение
cross(Vector2) -> float

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

magnitude()
возвращает евклидову длину вектора.
magnitude() -> float

вычисляет длину вектора, которая следует из теоремы: vec.magnitude() == math.sqrt(vec.x**2 + vec.y**2)

magnitude_squared()
возвращает квадрат евклидовой длины вектора.
magnitude_squared() -> float

вычисляет длину вектора, которая следует из теоремы: vec.magnitude_squared() == vec.x**2 + vec.y**2. Это быстрее, чем vec.magnitude(), потому что не использует квадратный корень.

length()
возвращает евклидову длину вектора.
length() -> float

вычисляет евклидову длину вектора, которая следует из теоремы Пифагора: vec.length() == math.sqrt(vec.x**2 + vec.y**2)

length_squared()
возвращает квадрат евклидовой длины вектора.
length_squared() -> float

вычисляет длину вектора, которая следует из теоремы Пифагора: vec.length_squared() == vec.x**2 + vec.y**2. Это быстрее, чем vec.length(), потому что не использует квадратный корень.

normalize()
возвращает вектор с тем же направлением, но длиной 1.
normalize() -> Vector2

Возвращает новый вектор, у которого length равно 1, и направление такое же, как у self.

normalize_ip()
нормализует вектор на месте, так что его длина равна 1.
normalize_ip() -> None

Нормализует вектор, так что у него length равно 1. Направление вектора не меняется.

is_normalized()
проверяет, является ли вектор нормализованным (т.е. имеет длину == 1).
is_normalized() -> Bool

Возвращает True, если у вектора length равно 1. В противном случае возвращает False.

scale_to_length()
изменяет длину вектора на заданную.
scale_to_length(float) -> None

Изменяет длину вектора на заданную. Направление вектора не меняется. Также можно изменять длину до 0. Если вектор является нулевым вектором (т.е. имеет длину 0, следовательно, нет направления), то возникает ValueError.

reflect()
возвращает вектор, отраженный от заданной нормали.
reflect(Vector2) -> Vector2

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

reflect_ip()
отражает вектор от заданной нормали на месте.
reflect_ip(Vector2) -> None

Изменяет направление self, как если бы он отразился от поверхности с заданной нормалью поверхности.

distance_to()
вычисляет евклидово расстояние до заданного вектора.
distance_to(Vector2) -> float
distance_squared_to()
вычисляет квадрат евклидова расстояния до заданного вектора.
distance_squared_to(Vector2) -> float
move_towards()
возвращает вектор, перемещенный к цели на заданное расстояние.
move_towards(Vector2, float) -> Vector2

Экспериментальная функция: функция все еще разрабатывается, доступна для тестирования и отзывов. Может быть изменена. Пожалуйста, оставьте отзывы о move_towards авторам

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

Новое в pygame 2.1.3.

move_towards_ip()
перемещает вектор к его цели на заданное расстояние.
move_towards_ip(Vector2, float) -> None

Экспериментальная функция: функция все еще разрабатывается, доступна для тестирования и отзывов. Может быть изменена. Пожалуйста, оставьте отзывы о move_towards_ip авторам

Перемещает self к заданному вектору на заданное расстояние и не превышает его целевой вектор. Первый параметр определяет целевой вектор, а второй параметр определяет расстояние дельты. Если расстояние отрицательно, то он будет перемещаться от целевого вектора.

Новое в pygame 2.1.3.

lerp()
возвращает линейную интерполяцию к заданному вектору.
lerp(Vector2, float) -> Vector2

Возвращает вектор, который представляет собой линейную интерполяцию между self и заданным вектором. Второй параметр определяет, насколько далеко между self и other будет результат. Он должен быть значением между 0 и 1, где 0 означает self, а 1 означает other будет возвращено.

slerp()
возвращает сферическую интерполяцию к заданному вектору.
slerp(Vector2, float) -> Vector2

Вычисляет сферическую интерполяцию от self до заданного вектора. Второй аргумент — часто обозначаемый как t — должен находиться в диапазоне [-1, 1]. Он параметризует, где — между двумя векторами — должен быть результат. Если задано отрицательное значение, интерполяция не будет брать дополнение кратчайшего пути.

elementwise()
Следующая операция будет выполнена поэлементно.
elementwise() -> VectorElementwiseProxy

Применяет следующую операцию к каждому элементу вектора.

rotate()
поворачивает вектор на заданный угол в градусах.
rotate(angle) -> Vector2

Возвращает вектор с той же длиной, что и self, но повернутый против часовой стрелки на заданный угол в градусах. (Обратите внимание, что из-за инвертированной системы координат y в pygame, поворот будет выглядеть по часовой стрелке при отображении).

rotate_rad()
поворачивает вектор на заданный угол в радианах.
rotate_rad(angle) -> Vector2

Возвращает вектор с той же длиной, что и self, но повернутый против часовой стрелки на заданный угол в радианах. (Обратите внимание, что из-за инвертированной системы координат y в pygame, поворот будет выглядеть по часовой стрелке при отображении).

New in pygame 2.0.0.

rotate_ip()
поворачивает вектор на заданный угол в градусах на месте.
rotate_ip(angle) -> None

Поворачивает вектор против часовой стрелки на заданный угол в градусах. Длина вектора не изменяется. (Обратите внимание, что из-за инвертированной системы координат y в pygame, поворот будет выглядеть по часовой стрелке при отображении).

rotate_ip_rad()
поворачивает вектор на заданный угол в радианах на месте.
rotate_ip_rad(angle) -> None

УСТЕРЕЖДАЕТСЯ: Используйте rotate_rad_ip() вместо этого.

New in pygame 2.0.0.

Deprecated since pygame 2.1.1.

rotate_rad_ip()
поворачивает вектор на заданный угол в радианах на месте.
rotate_rad_ip(angle) -> None

Поворачивает вектор против часовой стрелки на заданный угол в радианах. Длина вектора не изменяется. (Обратите внимание, что из-за инвертированной системы координат y в pygame, поворот будет выглядеть по часовой стрелке при отображении).

New in pygame 2.1.1.

angle_to()
вычисляет угол до заданного вектора в градусах.
angle_to(Vector2) -> float

Возвращает угол от self до переданного Vector2 который бы повернул self для выравнивания с переданным Vector2 без пересечения отрицательной оси x.

angle_to image

Пример демонстрирующий возвращаемый угол

as_polar()
возвращает кортеж с радиальной дистанцией и азимутальным углом.
as_polar() -> (r, phi)

Возвращает кортеж (r, phi) где r - радиальная дистанция, а phi - азимутальный угол.

from_polar()
Создаёт Vector2(x, y) или устанавливает x и y из кортежа полярных координат.
Vector2.from_polar((r, phi)) -> Vector2
Vector2().from_polar((r, phi)) -> None

Если используется из класса, создаёт Vector2(x,y), в противном случае устанавливает x и y. Значения x и y определяются из кортежа (r, phi) где r — радиальное расстояние, а phi — азимутальный угол.

project()
Проектирует вектор на другой.
project(Vector2) -> Vector2

Возвращает спроецированный вектор. Это полезно для обнаружения столкновений, чтобы найти компоненты в определённом направлении (например, в направлении стены). Для более подробного объяснения см. Википедия.

Новое в pygame 2.0.2.

copy()
Возвращает копию самого себя.
copy() -> Vector2

Возвращает новый Vector2 с теми же размерами.

Новое в pygame 2.1.1.

clamp_magnitude()
Возвращает копию вектора с ограниченной величиной между max_length и min_length.
clamp_magnitude(max_length) -> Vector2
clamp_magnitude(min_length, max_length) -> Vector2

Экспериментально: функция всё ещё разрабатывается, доступна для тестирования и обратной связи. Она может измениться. Пожалуйста, оставьте обратную связь по clamp_magnitude авторам

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

Эта функция вызывает ValueError, если min_length больше, чем max_length, или если любое из этих значений отрицательно.

Новое в pygame 2.1.3.

clamp_magnitude_ip()
Ограничивает величину вектора между max_length и min_length
clamp_magnitude_ip(max_length) -> None
clamp_magnitude_ip(min_length, max_length) -> None

Экспериментально: функция всё ещё разрабатывается, доступна для тестирования и обратной связи. Она может измениться. Пожалуйста, оставьте обратную связь по clamp_magnitude_ip авторам

Ограничивает величину вектора между max_length и min_length. Если передано только одно значение, оно принимается как max_length

Эта функция вызывает ValueError, если min_length больше, чем max_length, или если любое из этих значений отрицательно.

Новое в pygame 2.1.3.

update()
Устанавливает координаты вектора.
update() -> None
update(int) -> None
update(float) -> None
update(Vector2) -> None
update(x, y) -> None
update((x, y)) -> None

Устанавливает координаты x и y на месте.

Новое в pygame 1.9.5.

epsilon
Определяет толерантность векторовых вычислений.

Оба класса Vector имеют значение epsilon, которое по умолчанию равно 1e-6. Это значение действует как числовой предел в различных методах для учёта ошибок плавающей точки. В частности, epsilon используется в следующих местах:

  • сравнение векторов (== и !=)

  • метод is_normalized (если квадрат длины находится в пределах epsilon от 1, он нормируется)

  • сглаживание (вектор с длиной <epsilon считается нулевым вектором и не может сглаживаться с ним)

  • отражение (нельзя отразить через нулевой вектор)

  • проекция (нельзя спроецировать на нулевой вектор)

  • вращение (используется только при вращении на кратные 90 градусов)

Хотя возможно изменить epsilon для конкретного экземпляра вектора, все остальные векторы сохранят значение по умолчанию. Изменение epsilon на конкретном экземпляре, однако, может привести к некоторому несимметричному поведению, где ожидается симметрия, например:

u = pygame.Vector2(0, 1)
v = pygame.Vector2(0, 1.2)
u.epsilon = 0.5 # don't set it nearly this large

print(u == v) # >> True
print(v == u) # >> False

Вероятно, вам никогда не придётся изменять epsilon от значения по умолчанию, но в редких случаях вы можете обнаружить, что предел слишком велик или слишком мал, в этом случае небольшое изменение epsilon может помочь вам.

pygame.math.Vector3
Вектор трёхмерного пространства
Vector3() -> Vector3(0, 0, 0)
Vector3(int) -> Vector3
Vector3(float) -> Vector3
Vector3(Vector3) -> Vector3
Vector3(x, y, z) -> Vector3
Vector3((x, y, z)) -> Vector3

Общая информация о классе Vector3.

Изменено в pygame 2.1.3: Теперь наследовавшиеся методы подклассов векторов корректно возвращают экземпляр подкласса, а не суперкласса

dot()
вычисляет скалярное произведение с другим вектором
dot(Vector3) -> float
cross()
вычисляет векторное произведение
cross(Vector3) -> Vector3

Вычисляет векторное произведение.

magnitude()
возвращает евклидову длину вектора.
magnitude() -> float

Вычисляет длину вектора, следуя из теоремы: vec.magnitude() == math.sqrt(vec.x**2 + vec.y**2 + vec.z**2)

magnitude_squared()
возвращает квадрат евклидовой длины вектора.
magnitude_squared() -> float

Вычисляет квадрат длины вектора, следуя из теоремы: vec.magnitude_squared() == vec.x**2 + vec.y**2 + vec.z**2. Это быстрее, чем vec.magnitude(), так как избегает вычисления квадратного корня.

length()
возвращает евклидову длину вектора.
length() -> float

Вычисляет евклидову длину вектора, следуя из теоремы Пифагора: vec.length() == math.sqrt(vec.x**2 + vec.y**2 + vec.z**2)

length_squared()
возвращает квадрат евклидовой длины вектора.
length_squared() -> float

Вычисляет квадрат евклидовой длины вектора, следуя из теоремы Пифагора: vec.length_squared() == vec.x**2 + vec.y**2 + vec.z**2. Это быстрее, чем vec.length(), так как избегает вычисления квадратного корня.

normalize()
возвращает вектор с тем же направлением, но длиной 1.
normalize() -> Vector3

Возвращает новый вектор, у которого length равно 1, и направление такое же, как у self.

normalize_ip()
нормализует вектор на месте, так что его длина равна 1.
normalize_ip() -> None

Нормализует вектор, так что его длина равна 1. Направление вектора не изменяется.

is_normalized()
проверяет, является ли вектор нормализованным (т.е. длина == 1).
is_normalized() -> Bool

Возвращает True, если длина вектора равна 1. В противном случае возвращает False.

scale_to_length()
масштабирует вектор до заданной длины.
scale_to_length(float) -> None

Масштабирует вектор до заданной длины. Направление вектора не меняется. Также можно масштабировать до длины 0. Если вектор является нулевым вектором (т.е. имеет длину 0, а значит, нет направления), то возникает ValueError.

reflect()
возвращает вектор, отраженный относительно заданной нормали.
reflect(Vector3) -> Vector3

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

reflect_ip()
отражает вектор относительно заданной нормали на месте.
reflect_ip(Vector3) -> None

Изменяет направление self так, как если бы оно отразилось от поверхности с заданной нормалью.

distance_to()
вычисляет евклидово расстояние до заданного вектора.
distance_to(Vector3) -> float
distance_squared_to()
вычисляет квадрат евклидова расстояния до заданного вектора.
distance_squared_to(Vector3) -> float
move_towards()
возвращает вектор, перемещённый к цели на заданное расстояние.
move_towards(Vector3, float) -> Vector3

Экспериментально: функция всё ещё разрабатывается, доступна для тестирования и отзывов. Может быть изменена. Пожалуйста, оставьте отзывы о move_towards авторам

Возвращает вектор, перемещённый к заданному вектору на заданное расстояние, не переходя его. Первый параметр определяет целевой вектор, а второй — расстояние перемещения. Если расстояние отрицательное, то вектор будет перемещаться от целевого.

Добавлено в pygame 2.1.3.

move_towards_ip()
перемещает вектор к цели на заданное расстояние.
move_towards_ip(Vector3, float) -> None

Экспериментально: функция всё ещё разрабатывается, доступна для тестирования и отзывов. Может быть изменена. Пожалуйста, оставьте отзывы о move_towards_ip авторам

Перемещает вектор к заданному вектору на заданное расстояние, не переходя его. Первый параметр определяет целевой вектор, а второй — расстояние перемещения. Если расстояние отрицательное, то вектор будет перемещаться от целевого.

Добавлено в pygame 2.1.3.

lerp()
возвращает линейную интерполяцию к заданному вектору.
lerp(Vector3, float) -> Vector3

Возвращает вектор, являющийся линейной интерполяцией между self и заданным вектором. Второй параметр определяет расстояние между self и другим вектором. Он должен быть значением между 0 и 1, где 0 означает self, а 1 означает other.

slerp()
возвращает сферическую интерполяцию к заданному вектору.
slerp(Vector3, float) -> Vector3

Вычисляет сферическую интерполяцию от self к заданному вектору. Второй аргумент (часто обозначаемый t) должен быть в диапазоне [-1, 1]. Он параметризует, где - между двумя векторами - должен быть результат. Если задано отрицательное значение, интерполяция не будет брать дополнительную часть кратчайшего пути.

elementwise()
Следующая операция будет выполнена поэлементно.
elementwise() -> VectorElementwiseProxy

Применяет следующую операцию к каждому элементу вектора.

END_OF_DOCUMENT_MARKER
rotate()
поворачивает вектор на заданный угол в градусах.
rotate(angle, Vector3) -> Vector3

Возвращает вектор, имеющий ту же длину, что и self, но повернутый против часовой стрелки на заданный угол в градусах вокруг заданной оси. (Обратите внимание, что из-за инвертированной системы координат y в pygame вращение будет выглядеть по часовой стрелке при отображении).

rotate_rad()
поворачивает вектор на заданный угол в радианах.
rotate_rad(angle, Vector3) -> Vector3

Возвращает вектор, имеющий ту же длину, что и self, но повернутый против часовой стрелки на заданный угол в радианах вокруг заданной оси. (Обратите внимание, что из-за инвертированной системы координат y в pygame вращение будет выглядеть по часовой стрелке при отображении).

Новое в pygame 2.0.0.

rotate_ip()
поворачивает вектор на заданный угол в градусах на месте.
rotate_ip(angle, Vector3) -> None

Поворачивает вектор против часовой стрелки вокруг заданной оси на заданный угол в градусах. Длина вектора не изменяется. (Обратите внимание, что из-за инвертированной системы координат y в pygame вращение будет выглядеть по часовой стрелке при отображении).

rotate_ip_rad()
поворачивает вектор на заданный угол в радианах на месте.
rotate_ip_rad(angle, Vector3) -> None

УСТАРЕЛО: Используйте rotate_rad_ip() вместо этого.

Новое в pygame 2.0.0.

Устарело начиная с pygame 2.1.1.

rotate_rad_ip()
поворачивает вектор на заданный угол в радианах на месте.
rotate_rad_ip(angle, Vector3) -> None

Поворачивает вектор против часовой стрелки вокруг заданной оси на заданный угол в радианах. Длина вектора не изменяется. (Обратите внимание, что из-за инвертированной системы координат y в pygame вращение будет выглядеть по часовой стрелке при отображении).

Новое в pygame 2.1.1.

rotate_x()
поворачивает вектор вокруг оси x на заданный угол в градусах.
rotate_x(angle) -> Vector3

Возвращает вектор, имеющий ту же длину, что и self, но повернутый против часовой стрелки вокруг оси x на заданный угол в градусах. (Обратите внимание, что из-за инвертированной системы координат y в pygame вращение будет выглядеть по часовой стрелке при отображении).

rotate_x_rad()
поворачивает вектор вокруг оси x на заданный угол в радианах.
rotate_x_rad(angle) -> Vector3

Возвращает вектор, имеющий ту же длину, что и self, но повернутый против часовой стрелки вокруг оси x на заданный угол в радианах. (Обратите внимание, что из-за инвертированной системы координат y в pygame вращение будет выглядеть по часовой стрелке при отображении).

Новое в pygame 2.0.0.

rotate_x_ip()
поворачивает вектор вокруг оси x на заданный угол в градусах на месте.
rotate_x_ip(angle) -> None

Поворачивает вектор против часовой стрелки вокруг оси x на заданный угол в градусах. Длина вектора не изменяется. (Обратите внимание, что из-за инвертированной системы координат y в pygame вращение будет выглядеть по часовой стрелке при отображении).

rotate_x_ip_rad()
поворачивает вектор вокруг оси x на заданный угол в радианах на месте.
rotate_x_ip_rad(angle) -> None

УСТАРЕЛО: Используйте rotate_x_rad_ip() вместо этого.

Новое в pygame 2.0.0.

Устарело начиная с pygame 2.1.1.

rotate_x_rad_ip()
поворачивает вектор вокруг оси x на заданный угол в радианах на месте.
rotate_x_rad_ip(angle) -> None

Поворачивает вектор против часовой стрелки вокруг оси x на заданный угол в радианах. Длина вектора не изменяется. (Обратите внимание, что из-за инвертированной системы координат y в pygame вращение будет выглядеть по часовой стрелке при отображении).

Новое в pygame 2.1.1.

rotate_y()
поворачивает вектор вокруг оси y на заданный угол в градусах.
rotate_y(angle) -> Vector3

Возвращает вектор, имеющий ту же длину, что и self, но повернутый против часовой стрелки вокруг оси y на заданный угол в градусах. (Обратите внимание, что из-за инвертированной системы координат y в pygame вращение будет выглядеть по часовой стрелке при отображении).

rotate_y_rad()
поворачивает вектор вокруг оси y на заданный угол в радианах.
rotate_y_rad(angle) -> Vector3

Возвращает вектор, имеющий ту же длину, что и self, но повернутый против часовой стрелки вокруг оси y на заданный угол в радианах. (Обратите внимание, что из-за инвертированной системы координат y в pygame вращение будет выглядеть по часовой стрелке при отображении).

Новое в pygame 2.0.0.

rotate_y_ip()
поворачивает вектор вокруг оси y на заданный угол в градусах на месте.
rotate_y_ip(angle) -> None

Поворачивает вектор против часовой стрелки вокруг оси y на заданный угол в градусах. Длина вектора не изменяется. (Обратите внимание, что из-за инвертированной системы координат y в pygame вращение будет выглядеть по часовой стрелке при отображении).

rotate_y_ip_rad()
поворачивает вектор вокруг оси y на заданный угол в радианах на месте.
rotate_y_ip_rad(angle) -> None

УСТАРЕЛО: Используйте rotate_y_rad_ip() вместо этого.

Новое в pygame 2.0.0.

Устарело начиная с pygame 2.1.1.

rotate_y_rad_ip()
поворачивает вектор вокруг оси y на заданный угол в радианах на месте.
rotate_y_rad_ip(angle) -> None

Поворачивает вектор против часовой стрелки вокруг оси y на заданный угол в радианах. Длина вектора не изменяется. (Обратите внимание, что из-за инвертированной системы координат y в pygame вращение будет выглядеть по часовой стрелке при отображении).

Новое в pygame 2.1.1.

rotate_z()
поворачивает вектор вокруг оси z на заданный угол в градусах.
rotate_z(angle) -> Vector3

Возвращает вектор, имеющий ту же длину, что и self, но повернутый против часовой стрелки вокруг оси z на заданный угол в градусах. (Обратите внимание, что из-за инвертированной системы координат y в pygame вращение будет выглядеть по часовой стрелке при отображении).

rotate_z_rad()
поворачивает вектор вокруг оси z на заданный угол в радианах.
rotate_z_rad(angle) -> Vector3

Возвращает вектор, имеющий ту же длину, что и self, но повернутый против часовой стрелки вокруг оси z на заданный угол в радианах. (Обратите внимание, что из-за инвертированной системы координат y в pygame вращение будет выглядеть по часовой стрелке при отображении).

Новое в pygame 2.0.0.

rotate_z_ip()
поворачивает вектор вокруг оси z на заданный угол в градусах.
rotate_z_ip(angle) -> None

Поворачивает вектор против часовой стрелки вокруг оси z на заданный угол в градусах. Длина вектора не меняется. (Обратите внимание, что из-за обратной системы координат y в pygame вращение будет выглядеть по часовой стрелке при отображении).

rotate_z_ip_rad()
поворачивает вектор вокруг оси z на заданный угол в радианах.
rotate_z_ip_rad(angle) -> None

УСТАРЕЛО: Используйте rotate_z_rad_ip() вместо этого.

Устарело начиная с pygame 2.1.1.

rotate_z_rad_ip()
поворачивает вектор вокруг оси z на заданный угол в радианах.
rotate_z_rad_ip(angle) -> None

Поворачивает вектор против часовой стрелки вокруг оси z на заданный угол в радианах. Длина вектора не меняется. (Обратите внимание, что из-за обратной системы координат y в pygame вращение будет выглядеть по часовой стрелке при отображении).

Добавлена в pygame 2.1.1.

angle_to()
вычисляет угол до заданного вектора в градусах.
angle_to(Vector3) -> float

Возвращает угол между self и заданным вектором.

as_spherical()
возвращает кортеж с радиальным расстоянием, углом наклона и азимутальным углом.
as_spherical() -> (r, theta, phi)

Возвращает кортеж (r, theta, phi) где r — радиальное расстояние, theta — угол наклона, а phi — азимутальный угол.

from_spherical()
Создаёт Vector3(x, y, z) или устанавливает x, y и z из 3-кортежа сферических координат.
Vector3.from_spherical((r, theta, phi)) -> Vector3
Vector3().from_spherical((r, theta, phi)) -> None

Если используется из класса, создаёт Vector3(x, y, z), иначе устанавливает x, y и z. Значения x, y и z из кортежа (r, theta, phi) где r — радиальное расстояние, theta — угол наклона, а phi — азимутальный угол.

project()
проектирует вектор на другой.
project(Vector3) -> Vector3

Возвращает спроектированный вектор. Это полезно для обнаружения столкновений, для нахождения компонент в определённом направлении (например, в направлении стены). Более подробное объяснение см. на Wikipedia.

Добавлена в pygame 2.0.2.

copy()
Возвращает копию самого себя.
copy() -> Vector3

Возвращает новый Vector3 с теми же размерами.

Добавлена в pygame 2.1.1.

clamp_magnitude()
Возвращает копию вектора с ограниченной величиной между max_length и min_length.
clamp_magnitude(max_length) -> Vector3
clamp_magnitude(min_length, max_length) -> Vector3

Экспериментальная функция: функция всё ещё в разработке, доступна для тестирования и отзывов. Может измениться. Пожалуйста, оставьте обратную связь по clamp_magnitude авторам

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

Эта функция вызывает исключение ValueError, если min_length больше чем max_length, или если одно из этих значений отрицательное.

Добавлена в pygame 2.1.3.

clamp_magnitude_ip()
Ограничивает величину вектора между max_length и min_length.
clamp_magnitude_ip(max_length) -> None
clamp_magnitude_ip(min_length, max_length) -> None

Экспериментальная функция: функция всё ещё в разработке, доступна для тестирования и отзывов. Может измениться. Пожалуйста, оставьте обратную связь по clamp_magnitude_ip авторам

Ограничивает величину вектора между max_length и min_length. Если передано только одно значение, оно принимается как max_length.

Эта функция вызывает исключение ValueError, если min_length больше чем max_length, или если одно из этих значений отрицательное.

Добавлена в pygame 2.1.3.

update()
Устанавливает координаты вектора.
update() -> None
update(int) -> None
update(float) -> None
update(Vector3) -> None
update(x, y, z) -> None
update((x, y, z)) -> None

Устанавливает координаты x, y и z.

Добавлена в pygame 1.9.5.

epsilon
Определяет допустимую погрешность вычислений с вектором.

При длинах, находящихся в пределах этого числа, векторы считаются равными. Для получения дополнительной информации см. pygame.math.Vector2.epsilon




Изменить на GitHub

© Pygame Developers.
Licensed under the GNU LGPL License version 2.1.
https://www.pygame.org/docs/ref/math.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API