要旋转一个向量,可以使用矩阵乘法来实现。下面是一个示例代码,展示如何旋转一个二维向量:
import numpy as np
def rotate_vector(vector, angle):
# 将角度转换为弧度
angle_rad = np.radians(angle)
# 构建旋转矩阵
rotation_matrix = np.array([[np.cos(angle_rad), -np.sin(angle_rad)],
[np.sin(angle_rad), np.cos(angle_rad)]])
# 将向量转换为列矩阵
vector_matrix = np.array([[vector[0]],
[vector[1]]])
# 进行矩阵乘法来旋转向量
rotated_vector_matrix = np.dot(rotation_matrix, vector_matrix)
# 将旋转后的列矩阵转换回向量
rotated_vector = np.array([rotated_vector_matrix[0][0],
rotated_vector_matrix[1][0]])
return rotated_vector
# 测试代码
vector = np.array([1, 0]) # 原始向量为 [1, 0]
angle = 45 # 旋转角度为 45 度
rotated_vector = rotate_vector(vector, angle)
print("旋转前的向量:", vector)
print("旋转后的向量:", rotated_vector)
该代码使用numpy库实现向量和矩阵的操作。首先,将旋转角度从度转换为弧度。然后,构建一个旋转矩阵。接下来,将向量转换为列矩阵,并使用矩阵乘法来旋转向量。最后,将旋转后的列矩阵转换回向量形式。运行代码后,将输出旋转前和旋转后的向量。