微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

减少复合旋转对象

如何解决减少复合旋转对象

我有一个包含多个旋转的 scipy.spatial.transform.Rotation

from scipy.spatial.transform import Rotation

rot = Rotation.from_matrix([[[-1,0],[ 0,1,-1]],[[ 0,1],[-1,0]],[[ 1,-1,0]]])

我想获得旋转

total = rot[0] * rot[1] * rot[2]

顺便说一下,这是绕轴 [1,1] / cbrt(3) 旋转 120 度。在更一般的情况下,我可以编写循环:

total = Rotation.identity()
for r in rot:
    total *= r

total = functools.reduce(Rotation.__mul__,rot)

是否有可用的内置方法来执行此操作?

方法 Rotation.reduce 看起来很有前途,但似乎完全是在做其他事情。

顺便说一句,这似乎是目前最快的方法

Rotation.from_matrix(functools.reduce(np.dot,rot.as_matrix()))

不幸的是,以下方法不起作用:

np.matmul.reduce(rot.as_matrix(),axis=0)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。