C++ 将角度转换为坐标

标签 c++ algorithm matlab formula

我目前正在尝试使用 Mathworks 的 Matlab 公式 Sph2Cart 将 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));

但无论 Altitude 和 Azimuth 是什么,clax、clay 和 claz 要么是 0 要么是 1。

我确定我犯了一个错误,之后我会笑我是多么愚蠢。但实际上,我不知道为什么这不起作用,为什么每个值只给出 1 或 0...

最佳答案

很可能,您将 clax 声明为某种整数类型(例如 intlong ...)。否则,AltitudeAzimuth 可能被声明为整数类型。在那种情况下,您总是会在三角函数的参数中得到 2*pi 的倍数。

关于C++ 将角度转换为坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11919500/

相关文章:

python - "Hot"算法总是返回0

algorithm - 更好的预排序 block 排序算法

Matlab 内联 VS 匿名函数

Matlab 3D 插值

c++ - 连接功能

c# - 二进制搜索算法的扩展,用于查找要在数组中搜索的键值的第一个和最后一个索引

c++ - QT DOMXml - 更改节点的名称

MATLAB:如何使用 ButtonDownFcn 存储单击的坐标

c++ - 在 C++ 中反转集合的内容

c++ - 从模板函数引用全局数据?