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向量类,支持向量和标量运算符,还提供了一些高级函数。
- __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)
- __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)
- property angle: float¶
向量的角度(以弧度表示)
- property angle_degrees: float¶
获取向量的角度(以度为单位)
- cross(other: Tuple[float, float]) float [源代码]¶
- 向量与其他向量之间的叉积
V1.cross(V2)->v1.x v2.y - v1.y v2.x
- 返回:
叉积
- get_dist_sqrd(other: Tuple[float, float]) float [源代码]¶
向量和其他向量之间的平方距离使用此方法比先调用get_Distance()然后对结果执行SQRT()更有效。
- 返回:
平方距离
- 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)
- property length: float¶
获取向量的长度。
>>> Vec2d(10, 0).length 10.0 >>> '%.2f' % Vec2d(10, 20).length '22.36'
- 返回:
它的长度
- scale_to_length(length: float) Vec2d [源代码]¶
返回缩放到给定长度的该向量的副本。
>>> '%.2f, %.2f' % Vec2d(10, 20).scale_to_length(20) '8.94, 17.89'
- x: float¶
字段号0的别名
- y: float¶
字段号%1的别名