搜索向量计算的数学算法

Searching mathematical algorithm for vector calculation

我已经给出了这样的 3D 对象的方向:

方向 1:

X 向量:

X_X: 1

X_Y: 0

X_Z: 0

Y 向量:

Y_X: 0

Y_Y: 1

Y_Z: 0

Z 向量:

Z_X: 0

Z_Y: 0

Z_Z: 1

方向 2:

X 向量:

X_X: 0

X_Y: 0

X_Z: 1

Y 向量:

Y_X: 0

Y_Y:-1

Y_Z: 0

Z 向量:

Z_X: 1

Z_Y: 0

Z_Z: 0

看起来像这样(左边方向 1,右边方向 2):

我现在必须过滤掉从方向1到方向2的旋转信息。 有算法f.e。它计算向量 1 到向量 2 的旋转,但这里我有 3 个向量,但我不知道如何在这里计算欧拉旋转角度。

我考虑过将 3 个向量汇总为 1 个,f.e。图片 1 将是 (1,1,1),而图片 2 将是 (1,-1,1),但这里的问题是,哪个轴指向哪个方向的信息丢失了。 有人有想法吗?

您似乎想要找到将一个非共面向量的三元组变换为另一个三元组的仿射变换。
制作矩阵 AB 和未知旋转矩阵 M.
这里像 x1 y1 z1 这样的列向量是你的 X_X X_Y X_Z 等等。

 M * A = B

    |x1 x2 x3 0|     |x1` x2` x3` 0|
M * |y1 y2 y3 0| =   |y1` y2` y3` 0|
    |z1 z2 z3 0|     |z1` z2` z3` 0| 
    |1  1  1  1|     |1   1   1   1| 

A 的逆矩阵 InvA 两边乘以 IA

M * A * InvA = B * InvA
M * |1 |= B * InvA
M = B * InvA

现在你有变换向量所需的矩阵 M

旋转约 5,0,0

      |1 0 0 -5|        |1 0 0 5|
M' =  |0 1 0  0| * M *  |0 1 0 0|
      |0 0 1  0|        |0 0 1 0|
      |0 0 0  1|        |0 0 0 1|