计算2个空间向量支架的夹角(固定系欧拉角XYZ)分量

前提:固定系欧拉角,旋转顺序XYZ

直接用py文件简单计算:

复制代码
from scipy.spatial.transform import Rotation
import numpy as np

def calculate_euler_angles(vec1, vec2, rotation_order='xyz'):
    # 将法向量转换为单位向量
    vec1_normalized = vec1 / np.linalg.norm(vec1)
    vec2_normalized = vec2 / np.linalg.norm(vec2)

    # 计算旋转轴(叉积)
    axis = np.cross(vec1_normalized, vec2_normalized)
    new_axis = axis / np.linalg.norm(axis)

    # 计算旋转角度(夹角)
    dot_product = np.dot(vec1_normalized, vec2_normalized)
    angle = np.arccos(dot_product)

    # 创建 Rotation 对象
    rotation = Rotation.from_rotvec(angle * new_axis)

    # 获取固定欧拉角
    euler_angles = rotation.as_euler(rotation_order, degrees=True)

    # 输出欧拉角
    print(f"Euler Angles ({rotation_order}): {euler_angles}")

# 两个法向量,这里使用示例值
vec1 = np.array([0.0003243, -0.0055068, 0.999985])  # src 
vec2 = np.array([0.0000204, -0.0055769, 0.9999844]) # dst

# 按照 xyz 欧拉角顺序计算欧拉角 
calculate_euler_angles(vec1, vec2, rotation_order='xyz')
相关推荐
珹洺17 小时前
Java-Spring入门指南(二十二)SSM整合前置基础
java·开发语言·spring
ʚ希希ɞ ྀ17 小时前
用队列实现栈---超全详细解
java·开发语言·数据结构
哈里谢顿17 小时前
threading模块学习
python
mit6.82418 小时前
[VoiceRAG] Azure | 使用`azd`部署应用 | Dockerfile
python
砥锋18 小时前
计算机人的雷达入门:零基础用Python+Cinrad可视化雷达数据【实战指南】
python
你们瞎搞18 小时前
arcgis矢量数据转为标准geojson格式
python·arcgis·json·地理空间数据
郝学胜-神的一滴18 小时前
Python中的鸭子类型:理解动态类型的力量
开发语言·python·程序人生·软件工程
2401_8414956418 小时前
【计算机视觉】霍夫变换函数的参数调整
人工智能·python·算法·计算机视觉·霍夫变换·直线检测·调整策略
猫头虎19 小时前
如何解决 pip install -r requirements.txt extras 语法 ‘package[extra’ 缺少 ‘]’ 解析失败问题
开发语言·python·开源·beautifulsoup·virtualenv·pandas·pip
zhangfeng113319 小时前
R语言 读取tsv的三种方法 ,带有注释的tsv文件
开发语言·r语言·生物信息