- 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) -> Vector2Vector2(float) -> Vector2Vector2(Vector2) -> Vector2Vector2(x, y) -> Vector2Vector2((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.Пример демонстрирующий возвращаемый угол
- as_polar()
-
возвращает кортеж с радиальной дистанцией и азимутальным углом.as_polar() -> (r, phi)
Возвращает кортеж
(r, phi)где r - радиальная дистанция, а phi - азимутальный угол.
- from_polar()
-
Создаёт Vector2(x, y) или устанавливает x и y из кортежа полярных координат.Vector2.from_polar((r, phi)) -> Vector2Vector2().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) -> Vector2clamp_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_lengthclamp_magnitude_ip(max_length) -> Noneclamp_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() -> Noneupdate(int) -> Noneupdate(float) -> Noneupdate(Vector2) -> Noneupdate(x, y) -> Noneupdate((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) -> Vector3Vector3(float) -> Vector3Vector3(Vector3) -> Vector3Vector3(x, y, z) -> Vector3Vector3((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
Применяет следующую операцию к каждому элементу вектора.
- 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)) -> Vector3Vector3().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) -> Vector3clamp_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) -> Noneclamp_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() -> Noneupdate(int) -> Noneupdate(float) -> Noneupdate(Vector3) -> Noneupdate(x, y, z) -> Noneupdate((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