参考:https://wenku.baidu.com/view/2322f51e650e52ea55189867.html
空间上绕任意点旋转
设旋转前的绝对坐标为P(x,y,z)
参考点的坐标为(_x,_y,_z),旋转轴的单位向量(i,j,k)
计算旋转后的坐标P’实现,旋转角度为γ(弧度)
1.计算P相对参考点的相对坐标
x -= _x;
y -= _y;
z -= _z;
2.计算旋转后的坐标
x' = (i*i*(1 - cos(γ)) + cos(γ))*x + (i*j*(1 - cos(γ)) - k*sin(γ))*y + (i*k*(1 - cos(γ)) + j*sin(γ))*z;
y' = (j*i*(1 - cos(γ)) + k*sin(γ))*x + (j*j*(1 - cos(γ)) + cos(γ))*y + (j*k*(1 - cos(γ)) - i*sin(γ))*z;
z' = (i*k*(1 - cos(γ)) - j*sin(γ))*x + (j*k*(1 - cos(γ)) + i*sin(γ))*y + (k*k*(1 - cos(γ)) + cos(γ))*z;
3.计算P’的绝对坐标
x’ += _x;
y’ += _y;
z’ += _z;