mindsponge.common.rigids_mul_rigids
- mindsponge.common.rigids_mul_rigids(a, b)[源代码]
把刚体变换 \(b\) 从它所在局部坐标系中变换到刚体变换 \(a\) 所在局部坐标系中。
\(b\) 和 \(a\) 两个刚体变换的旋转矩阵相乘结果作为刚体变换 \(b\) 新的旋转矩阵。
用刚体变换 \(a\) 的旋转矩阵与刚体变换 \(b\) 的平移距离相乘,所得向量与刚体变换 \(a\) 的平移距离相加,所得结果为刚体变换 \(b\) 的新平移距离。
\[\begin{split}\begin{split} &r = a_rb_r \\ &t = a_rb_t +a_t \\ \end{split}\end{split}\]- 参数:
a (tuple) - 刚体变换 \(a\) ,长度为2,包含旋转矩阵 \((xx, xy, xz, yx, yy, yz, zx, zy, zz)\) 与平移距离 \((x, y, z)\) ,数据类型为标量或者shape相同的Tensor。
b (tuple) - 刚体变换 \(b\) ,长度为2,包含旋转矩阵 \((xx, xy, xz, yx, yy, yz, zx, zy, zz)\) 与平移距离 \((x, y, z)\) ,数据类型为标量或者shape相同的Tensor。
- 返回:
tuple(rots, trans),变换后的刚体 \(b\) ,长度为2,包含旋转矩阵 \((xx, xy, xz, yx, yy, yz, zx, zy, zz)\) 与平移距离 \((x, y, z)\) ,数据类型为标量或者shape相同的Tensor。
- 支持平台:
Ascend
GPU
样例:
>>> import mindsponge >>> a = ((1, 2, 3, 4, 5, 6, 7, 8, 9), (3, 4, 5)) >>> b = ((2, 3, 4, 1, 5, 6, 3, 8, 7), (1, 2, 3)) >>> b1 = mindsponge.common.rigids_mul_rigids(a,b) >>> print(b1) ((13, 37, 37, 31, 85, 88, 49, 133, 139), (17, 36, 55))