繁体   English   中英

旋转变换矩阵以匹配反射向量

[英]Rotate transformation matrix to match reflection vector

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

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进行渲染时,只有少数几个反射结果是正确的。 我在这里问这个问题是因为我似乎已经达到了我已经摇摇欲坠的线性代数所能记住的极限。 感谢您提供任何信息。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM