python旋转坐标系_四元数旋转坐标系

这篇博客介绍了一个Python实现的四元数类,用于处理坐标系的旋转操作,包括从轴角转换到四元数、四元数乘法、获取旋转轴和角度、向量旋转等。通过示例展示了四元数如何应用于坐标系旋转。
摘要由CSDN通过智能技术生成

这个问题和@senderle给出的答案真的帮助了我的一个项目。答案是最小的,涵盖了一个人可能需要执行的大多数四元数计算的核心。

对于我自己的项目,我发现为所有操作分别使用函数并在每次需要时逐个导入它们是很乏味的,所以我实现了一个面向对象的版本。

四元数.py:import numpy as np

from math import sin, cos, acos, sqrt

def normalize(v, tolerance=0.00001):

mag2 = sum(n * n for n in v)

if abs(mag2 - 1.0) > tolerance:

mag = sqrt(mag2)

v = tuple(n / mag for n in v)

return np.array(v)

class Quaternion:

def from_axisangle(theta, v):

theta = theta

v = normalize(v)

new_quaternion = Quaternion()

new_quaternion._axisangle_to_q(theta, v)

return new_quaternion

def from_value(value):

new_quaternion = Quaternion()

new_quaternion._val = value

return new_quaternion

def _axisangle_to_q(self, theta, v):

x = v[0]

y = v[1

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值