VTK 示例:坐标转换

在 VTK/OpenGL 中,空间坐标系为右手的直角坐标系,屏幕上的左右是 x 轴,上下是 y 轴,z 轴则垂直于屏幕。(参考 坐标系

VTK 坐标系

在球坐标中,表示一个点的位置用 (r, θ, φ),三个参数分别代表着半径、俯仰角和方位角

因此,球坐标转 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)