Вы можете вращаться вокруг оси y, изменяя θ, и вращаться вокруг оси z, изменяя φ.Однако вращение вокруг оси x немного сложнее.
Один простой способ - преобразовать все в координаты catesian, выполнить вращение и преобразовать обратно.
Уравнения для (x, y, z) (сферически-декартовы) равны
x = r sin θ cos φ
y = r sin θ sin φ
z = r cos θ
Уравнения вращения (x, y, z) к новым точкам (x ', y', z ') вокруг x-оси на угол α равны
x' = x
= r sin θ cos φ
y' = y cos α - z sin α
= (r sin θ sin φ) cos α - (r cos θ) sin α
z' = y sin α + z cos α
= (r sin θ sin φ) sin α + (r cos θ) cos α
Уравнения для (r, θ, φ) (декартово-сферические) равны
r' = sqrt(x'<sup>2</sup> + y'<sup>2</sup> + z'<sup>2</sup>)
<b>= r</b>
θ' = cos<sup>-1</sup>(z'/r')
<b>= cos<sup>-1</sup>(sin θ sin φ sin α + cos θ cos α)</b>
φ' = tan<sup>-1</sup>(y'/x')
<b>= tan<sup>-1</sup>(tan φ cos α - cotan θ sin α sec φ)</b>
Не знаю, есть лиэто способ уменьшить это дальше, но это должно сработать.