mindsponge.common.rots_from_two_vecs
- mindsponge.common.rots_from_two_vecs(e0_unnormalized, e1_unnormalized)[源代码]
输入两个向量
和 ,计算由这两个向量所构成的x-y平面所在坐标系与原始坐标系之间的旋转矩阵。 ,首先计算
的单位向量 作为该坐标系的x轴单位向量。之后计算
在a轴上的投影长度 。那么
向量在a轴上的投影向量为 ,与a轴垂直的向量即为 。计算
的单位向量 , 即为该坐标系的y轴单位向量。最后通过计算
和 的外积得到 ,即为该坐标系的z轴单位向量。最后返回的旋转矩阵为
。- 参数:
e0_unnormalized (tuple) - 作为该坐标系x轴的向量,长度为3,数据类型为标量或者shape相同的Tensor。
e1_unnormalized (tuple) - 构成X-Y平面的另一个向量,长度为3,数据类型为标量或者shape相同的Tensor。
- 返回:
tuple,两个向量的旋转矩阵
,数据类型为标量或者shape相同的Tensor。- 支持平台:
Ascend
GPU
样例:
>>> import mindsponge >>> v1 = (1, 2, 3) >>> v2 = (3, 4, 5) >>> ans = mindsponge.common.rots_from_two_vecs(v1, v2) >>> print(ans) (0.4242640686695021, -0.808290367995452, 0.40824828617045156, 0.5656854248926695, -0.1154700520346678, -0.8164965723409039, 0.7071067811158369, 0.5773502639261153, 0.4082482861704521)