pymunk.vec2d Module

This module contain the Vec2d class that is used in all of pymunk when a vector is needed.

The Vec2d class is used almost everywhere in pymunk for 2d coordinates and vectors, for example to define gravity vector in a space. However, pymunk is smart enough to convert tuples or tuple like objects to Vec2ds so you usually do not need to explicitly do conversions if you happen to have a tuple:

>>> import pymunk
>>> space = pymunk.Space()
>>> print space.gravity
Vec2d(0.0, 0.0)
>>> space.gravity = 3,5
>>> print space.gravity
Vec2d(3.0, 5.0)
>>> space.gravity += 2,6
>>> print space.gravity
Vec2d(5.0, 11.0)
class pymunk.vec2d.Vec2d(x_or_pair=None, y=None)[source]

Bases: list

2d vector class, supports vector and scalar operators, and also provides some high level functions.

__init__(x_or_pair=None, y=None)[source]
angle

Gets or sets the angle (in radians) of a vector

angle_degrees

Gets or sets the angle (in degrees) of a vector

append(object) → None -- append object to end
clear() → None -- remove all items from L
convert_to_basis(x_vector, y_vector)[source]
copy() → list -- a shallow copy of L
count(value) → integer -- return number of occurrences of value
cpvrotate(other)[source]

Uses complex multiplication to rotate this vector by the other.

cpvunrotate(other)[source]

The inverse of cpvrotate

cross(other)[source]
The cross product between the vector and other vector
v1.cross(v2) -> v1.x*v2.y - v2.y*v1.x
Returns:The cross product
dot(other)[source]
The dot product between the vector and other vector
v1.dot(v2) -> v1.x*v2.x + v1.y*v2.y
Returns:The dot product
extend(iterable) → None -- extend list by appending elements from the iterable
get_angle()[source]
get_angle_between(other)[source]

Get the angle between the vector and the other in radians

Returns:The angle
get_angle_degrees()[source]
get_angle_degrees_between(other)[source]

Get the angle between the vector and the other in degrees

Returns:The angle (in degrees)
get_dist_sqrd(other)[source]

The squared distance between the vector and other vector It is more efficent to use this method than to call get_distance() first and then do a sqrt() on the result.

Returns:The squared distance
get_distance(other)[source]

The distance between the vector and other vector

Returns:The distance
get_length()[source]

Get the length of the vector.

Returns:The length
get_length_sqrd()[source]

Get the squared length of the vector. It is more efficent to use this method instead of first call get_length() or access .length and then do a sqrt().

Returns:The squared length
index(value[, start[, stop]]) → integer -- return first index of value.

Raises ValueError if the value is not present.

insert()

L.insert(index, object) – insert object before index

int_tuple

Return the x and y values of this vector as ints

interpolate_to(other, range)[source]
length

Gets or sets the magnitude of the vector

normalize_return_length()[source]

Normalize the vector and return its length before the normalization

Returns:The length before the normalization
normalized()[source]

Get a normalized copy of the vector Note: This function will return 0 if the length of the vector is 0.

Returns:A normalized vector
static ones()[source]

A vector where both x and y is 1

perpendicular()[source]
perpendicular_normal()[source]
pop([index]) → item -- remove and return item at index (default last).

Raises IndexError if list is empty or index is out of range.

projection(other)[source]
remove(value) → None -- remove first occurrence of value.

Raises ValueError if the value is not present.

reverse()

L.reverse() – reverse IN PLACE

rotate(angle_radians)[source]

Rotate the vector by angle_radians radians.

rotate_degrees(angle_degrees)[source]

Rotate the vector by angle_degrees degrees.

rotated(angle_radians)[source]

Create and return a new vector by rotating this vector by angle_radians radians.

Returns:Rotated vector
rotated_degrees(angle_degrees)[source]

Create and return a new vector by rotating this vector by angle_degrees degrees.

Returns:Rotade vector
sort(key=None, reverse=False) → None -- stable sort *IN PLACE*
static unit()[source]

A unit vector pointing up

x
y
static zero()[source]

A vector of zero length