3D 空间中的点绕轴旋转

问题描述 投票:0回答:1

我有一个坐标为 x1,x2,x3 的点。

需要绕通过点(0,0,0)和(Lx,Ly,Lz)的轴旋转该点θ角(从点(Lx,Ly)看应该是顺时针旋转,Lz))

给定 x1,x2,x3,Lx,Ly,Lz,Theta;我如何计算这个旋转?

math geometry rotation
1个回答
0
投票

首先,标准化轴向量:

m = sqrt(Lx*Lx + Ly*Ly + Lz*Lz)
x = Lx / m
y = Ly / m
z = Lz / m

则旋转矩阵为:

t*x*x + c     t*x*y - z*s   t*x*z + y*s
t*x*y + z*s   t*y*y + c     t*y*z - x*s
t*x*z - y*s   t*y*z + x*s   t*z*z + c

其中

c = cos(theta)
s = sin(theta)
t = 1- c

最后,将该矩阵乘以列向量

(x1, x2, x3)

是你想要的吗?

© www.soinside.com 2019 - 2024. All rights reserved.