在球坐标中,表示一个点的位置用(r, θ, φ),三个参数分别代表着半径,俯仰角和方位角。
在VTK/OpenGL中,空间坐标系为右手的直角坐标系,屏幕上的左右是x轴,上下是y轴,z轴则垂直于屏幕。
因此,球坐标转VTK/OpenGL中的坐标公式可以这样写(r为半径,θ为theta,φ为phi):
x = r * std::sin(theta) * std::sin(phi)
y = r * std::cos(theta)
z = r * std::sin(theta) * std::cos(phi)
实际上,我们输入的时候应该是角度制,但是上面公式中的参数是弧度制,因此作些修改,将theta和phi用glm转为弧度制:
theta = glm::radians(theta);
phi = glm::radians(phi);
x = r * std::sin(theta) * std::sin(phi)
y = r * std::cos(theta)
z = r * std::sin(theta) * std::cos(phi)