pymunk.vec2d 模块

这个模块包含Vec2d类,当需要一个向量时,这个类在所有的Pymunk中使用。

对于2D坐标和向量,Vec2d类几乎在任何地方都被使用,例如,用于定义空间中的重力向量。但是,pymunk足够聪明,可以将元组或类似元组的对象转换为Vec2d,因此如果碰巧有一个tuple::

>>> import pymunk
>>> space = pymunk.Space()
>>> space.gravity
Vec2d(0.0, 0.0)
>>> space.gravity = 3,5
>>> space.gravity
Vec2d(3.0, 5.0)
>>> space.gravity += 2,6
>>> space.gravity
Vec2d(5.0, 11.0)

更多示例::

>>> from pymunk.vec2d import Vec2d
>>> Vec2d(7.3, 4.2)
Vec2d(7.3, 4.2)
>>> Vec2d(7.3, 4.2) + Vec2d(1, 2)
Vec2d(8.3, 6.2)
class pymunk.vec2d.Vec2d(x: float, y: float)[源代码]

基类:NamedTuple

2D向量类,支持向量和标量运算符,还提供了一些高级函数。

__abs__() float[源代码]

返回Vec2d的长度

>>> abs(Vec2d(3,4))
5.0
__add__(other: Tuple[float, float]) Vec2d[源代码]

将一个Vec2d与另一个大小为2的Vec2d或元组相加

>>> Vec2d(3,4) + Vec2d(1,2)
Vec2d(4, 6)
>>> Vec2d(3,4) + (1,2)
Vec2d(4, 6)
__floordiv__(other: float) Vec2d[源代码]

底除以浮点数(也称为整数除法)

>>> Vec2d(3,6) // 2.0
Vec2d(1.0, 3.0)
__mul__(other: float) Vec2d[源代码]

与浮点数相乘

>>> Vec2d(3,6) * 2.5
Vec2d(7.5, 15.0)
__neg__() Vec2d[源代码]

返回Vec2d的否定版本

>>> -Vec2d(1,-2)
Vec2d(-1, 2)
__pos__() Vec2d[源代码]

返回Vec2d的一元位置。

>>> +Vec2d(1,-2)
Vec2d(1, -2)
__sub__(other: Tuple[float, float]) Vec2d[源代码]

将一个Vec2d与另一个大小为2的Vec2d或元组相减

>>> Vec2d(3,4) - Vec2d(1,2)
Vec2d(2, 2)
>>> Vec2d(3,4) - (1,2)
Vec2d(2, 2)
__truediv__(other: float) Vec2d[源代码]

用浮点数除法

>>> Vec2d(3,6) / 2.0
Vec2d(1.5, 3.0)
property angle: float

向量的角度(以弧度表示)

property angle_degrees: float

获取向量的角度(以度为单位)

convert_to_basis(x_vector: Tuple[float, float], y_vector: Tuple[float, float]) Vec2d[源代码]
cpvrotate(other: Tuple[float, float]) Vec2d[源代码]

使用复数乘法将此向量旋转到另一个。

cpvunrotate(other: Tuple[float, float]) Vec2d[源代码]

CpvRotate的逆数

cross(other: Tuple[float, float]) float[源代码]
向量与其他向量之间的叉积

V1.cross(V2)->v1.x v2.y - v1.y v2.x

返回:

叉积

dot(other: Tuple[float, float]) float[源代码]
向量与其他向量之间的点积

V1.ot(V2)->v1.x v2.x + v1.y v2.y

返回:

点积

get_angle_between(other: Tuple[float, float]) float[源代码]

求出向量与另一个向量之间的角度,单位为弧度

返回:

角度

get_angle_degrees_between(other: Vec2d) float[源代码]

获取向量与另一个向量之间的角度(以度为单位

返回:

角度(以度为单位)

get_dist_sqrd(other: Tuple[float, float]) float[源代码]

向量和其他向量之间的平方距离使用此方法比先调用get_Distance()然后对结果执行SQRT()更有效。

返回:

平方距离

get_distance(other: Tuple[float, float]) float[源代码]

向量与其他向量之间的距离

返回:

距离

get_length_sqrd() float[源代码]

得到向量的平方长度。如果长度的平方足够,则使用此方法比首先调用GET_LENGTH()或Access.Length然后执行x**2更有效。

>>> v = Vec2d(3,4)
>>> v.get_length_sqrd() == v.length**2
True
返回:

长度的平方

property int_tuple: Tuple[int, int]

此向量的x和y值,表示为整型数组。使用ROUND()舍入到最接近的整型。

>>> Vec2d(0.9, 2.4).int_tuple
(1, 2)
interpolate_to(other: Tuple[float, float], range: float) Vec2d[源代码]
property length: float

获取向量的长度。

>>> Vec2d(10, 0).length
10.0
>>> '%.2f' % Vec2d(10, 20).length
'22.36'
返回:

它的长度

normalized() Vec2d[源代码]

获取向量的标准化副本注意:如果向量的长度为0,则此函数将返回0。

返回:

归一化向量

normalized_and_length() Tuple[Vec2d, float][源代码]

规格化向量并在规格化之前返回其长度

返回:

规范化前的长度

static ones() Vec2d[源代码]

X和y均为1的向量

>>> Vec2d.ones()
Vec2d(1, 1)
perpendicular() Vec2d[源代码]
perpendicular_normal() Vec2d[源代码]
projection(other: Tuple[float, float]) Vec2d[源代码]

将此向量投影到其他向量的顶部

rotated(angle_radians: float) Vec2d[源代码]

通过按角度弧度旋转该向量来创建并返回一个新向量。

返回:

旋转向量

rotated_degrees(angle_degrees: float) Vec2d[源代码]

通过按角度度数旋转该向量来创建并返回一个新的向量。

返回:

旋转向量

scale_to_length(length: float) Vec2d[源代码]

返回缩放到给定长度的该向量的副本。

>>> '%.2f, %.2f' % Vec2d(10, 20).scale_to_length(20)
'8.94, 17.89'
static unit() Vec2d[源代码]

指向上方的单位向量

>>> Vec2d.unit()
Vec2d(0, 1)
x: float

字段号0的别名

y: float

字段号%1的别名

static zero() Vec2d[源代码]

长度为零的向量。

>>> Vec2d.zero()
Vec2d(0, 0)