我目前正在尝试使用来自 Mathworks、Sph2Cart 的 Matlab 中的公式将 2 个角度转换为 x、y、z
http://www.mathworks.com/help/techdoc/ref/sph2cart.html
算法:
x = r .* cos(elevation) .* cos(azimuth)
y = r .* cos(elevation) .* sin(azimuth)
z = r .* sin(elevation)
在 C++ 中
clax = 1 * cos((Altitude/360)*(2*XM_PI)) * cos((Azimuth/360)*(2*XM_PI));
clay = 1 * sin((Altitude/360)*(2*XM_PI));
claz = 1 * cos((Altitude/360)*(2*XM_PI)) * sin((Azimuth/360)*(2*XM_PI));
但是无论高度和方位角是多少,clax、clay 和 claz 不是 0 就是 1。
我确定我犯了一个错误,在这之后我会笑我是多么愚蠢。但实际上,我不知道为什么这不起作用,为什么每个值只给出 1 或 0 ......