python读xlsx中的A2到1764C的三维坐标数据并输入一个三维坐标和一个三维向量计算输入的坐标的读取坐标间的单位方向向量计算输入向量在各个读取坐标点处的单位方向向量计算以上两个单位方向向量的角平分向量的程序
下面是一个使用openpyxl库读取xlsx文件中的数据,并进行计算的示例代码:
import openpyxl
import numpy as np
# 读取xlsx文件
wb = openpyxl.load_workbook('data.xlsx')
sheet = wb.active
# 读取A2到C1764的数据
data = []
for row in sheet.iter_rows(min_row=2, max_row=1764, min_col=1, max_col=3):
data.append([cell.value for cell in row])
# 输入一个三维坐标和一个三维向量
input_coord = np.array([1, 2, 3])
input_vector = np.array([4, 5, 6])
# 计算输入坐标到读取坐标间的单位方向向量
unit_direction_vectors = []
for coord in data:
direction_vec = (np.array(coord) - input_coord) / np.linalg.norm(np.array(coord) - input_coord)
unit_direction_vectors.append(direction_vec)
# 计算输入向量在各个读取坐标点处的单位方向向量
input_unit_direction_vectors = []
for coord in data:
direction_vec = input_vector / np.linalg.norm(input_vector)
input_unit_direction_vectors.append(direction_vec)
# 计算以上两个单位方向向量的角平分向量
angle_bisectors = []
for i in range(len(data)):
angle_bisector = (unit_direction_vectors[i] + input_unit_direction_vectors[i]) / np.linalg.norm(unit_direction_vectors[i] + input_unit_direction_vectors[i])
angle_bisectors.append(angle_bisector)
# 打印结果
print("输入坐标到读取坐标间的单位方向向量:")
for vec in unit_direction_vectors:
print(vec)
print("输入向量在各个读取坐标点处的单位方向向量:")
for vec in input_unit_direction_vectors:
print(vec)
print("以上两个单位方向向量的角平分向量:")
for vec in angle_bisectors:
print(vec)
请将代码中的data.xlsx替换为你实际的xlsx文件名。代码首先读取A2到C1764的数据,并存储在data列表中。然后输入一个三维坐标和一个三维向量,并计算输入坐标到读取坐标间的单位方向向量、输入向量在各个读取坐标点处的单位方向向量以及以上两个单位方向向量的角平分向量。最后打印结果
原文地址: https://www.cveoy.top/t/topic/i1R8 著作权归作者所有。请勿转载和采集!