矩阵变换非常简单,但我可以在网上得到任何适当的解释。
我有一个3D云点数据,每个位置都有位置向量[x,y,z]
和法向量n=[a,b,c]
。现在我想将它转换为不同的坐标系,将特定点作为原点[0,0,0]
,将其法线向量作为Z axis
,然后将两个随机不同的正交向量作为其他轴。为此,我只假设一个正交向量为T=[0, -n[2], n[1]]
,然后对此进行归一化。为了获得另一个正交向量,我只是将其与正常b= n.cross(t)
现在我想用这个坐标系来映射其他点和法线。
据我所知,法向量可以使用变换矩阵
放入这个新的坐标系tx ty tz 0
bx by bz 0
nx ny nz 0
0 0 0 1
现在只需将法线向量相乘即可进入新的坐标系。normals in new coordinate sytem=T*n
但我不明白如何将其他点的位置矢量映射到这个新的坐标系中。?
答案 0 :(得分:0)
正如你所描述的那样,你的变换是相对于原点的纯旋转,因此点和法线将变换相同;也就是说,你可以为两者使用相同的矩阵。
请注意,对于一般的可逆仿射映射x -> Lx+t
,如果要保留正交性,则法线将转换为n -> normalize(transpose(inverse(L)) n)
(但是,根据转换的性质,这可能不够。 ..)。