几何工具

几何模块提供了二维和三维向量的实现,以及一系列相关的数学运算,用于处理位置、方向和变换等操作。

二维向量

class metacar.Vector2(x, y)[源代码]
x: float

x 坐标

y: float

y 坐标

rotate_rad(radians) Vector2[源代码]

绕原点旋转向量。

将向量绕原点按逆时针方向旋转指定的弧度。

参数:

radians (float) -- 旋转的角度,单位为弧度

返回:

旋转后的新向量

返回类型:

Vector2

angle_rad() float[源代码]

计算向量与 x 轴的夹角。

计算二维向量与 x 轴正方向的夹角,返回值范围为 [-π, π]。

返回:

向量与 x 轴的夹角

返回类型:

float

二维向量支持以下操作:

  • 加法、减法(向量与向量)

  • 乘法、除法(向量与标量)

  • 旋转

  • 角度计算

示例

from metacar import Vector2

# 创建向量
v1 = Vector2(3.0, 4.0)
v2 = Vector2(1.0, 2.0)

# 向量运算
v3 = v1 + v2  # 结果: Vector2(4.0, 6.0)
v4 = v1 * 2.0  # 结果: Vector2(6.0, 8.0)

# 计算角度
angle = v1.angle_rad()  # 弧度

# 旋转向量
rotated = v1.rotate_rad(1.57)  # 旋转约90度

三维向量

class metacar.Vector3(x, y, z)[源代码]
x: float

x 坐标

y: float

y 坐标

z: float

z 坐标

yaw_rad() float[源代码]

计算向量在 xOy 平面上的投影与 x 轴的夹角。

返回:

向量在 xOy 平面上的投影与 x 轴正方向的夹角,范围为 [-π, π],单位为弧度

返回类型:

float

to_vector2() Vector2[源代码]

将三维向量转换为二维向量。

该方法提取向量的 x 和 y 分量,忽略 z 分量,创建并返回一个新的二维向量。

返回:

包含原向量 x 和 y 分量的二维向量

返回类型:

Vector2

三维向量支持以下操作:

  • 加法、减法(向量与向量)

  • 乘法、除法(向量与标量)

  • 偏航角计算

  • 转换为二维向量

示例

from metacar import Vector3

# 创建向量
v1 = Vector3(3.0, 4.0, 1.0)
v2 = Vector3(1.0, 2.0, 3.0)

# 向量运算
v3 = v1 + v2  # 结果: Vector3(4.0, 6.0, 4.0)
v4 = v1 * 2.0  # 结果: Vector3(6.0, 8.0, 2.0)

# 计算偏航角
yaw = v1.yaw_rad()  # 弧度

# 转换为二维向量
v2d = v1.to_vector2()  # 结果: Vector2(3.0, 4.0)