1

我已经查看了有关stackoverflow的几个与弹跳相关的问题,但是似乎没有一个能让我摆脱困境。我有一个由与 3d 空间中的一条线相交的转换矩阵定义的海龟光标。我想要的是在交点处旋转光标,即变换矩阵,使其新方向与反射向量匹配。我有函数可以R从入射矢量V和反射线的法线中获得反射矢量N。在评估之前,我将每个标准化:

N,V=unit_vector(N),unit_vector(V)
R = -2*(np.dot(V,N))*N - V
R=unit_vector(R)

我的转换矩阵T在一个 numpy 数组中:

array([[ -0.84923515,   -0.6        ,   0.        ,   3.65341878],
       [  0.52801483,  -0.84923515,   0.        ,  25.12882224],
       [  0.        ,   0.        ,   1.        ,   0.        ],
       [  0.        ,   0.        ,   0.        ,   1.        ]])

如何通过 R 变换 T 以获得正确的方向向量?我从这里找到并使用了 R2_vect 函数来获取从一个向量到另一个向量的旋转矩阵,但是当我将它们发送到 vtk 进行渲染时,只有少数得到的反射看起来是正确的。我在这里问这个问题是因为我似乎已经达到了我从已经摇摇欲坠的线性代数中所能记住的极限。感谢您提供任何信息。

4

1 回答 1

0

一些额外的研究澄清了一些事情:变换矩阵的前 3 列代表 3 个正交向量 ( x1, x2, x3),第 4 列代表光标在给定时间间隔的空间坐标。最后一行不包含数据,它只是为了保持矩阵正方形。旋转向量只需删除 的最后一行T,从我列出的函数中获取 3x3 旋转矩阵R并旋转每个向量:R.dot(x1), R.dot(x2), R.dot(x3)然后我只需将这些值组合回 4x4 矩阵。

于 2013-10-03T20:53:38.977 回答