【发布时间】:2014-01-19 06:58:52
【问题描述】:
我对球坐标中角度的各种名称感到困惑。根据 Matlab 文档,“方位角和仰角是以弧度为单位的角位移。方位角是从正 x 轴测量的 x-y 平面中的逆时针角。仰角是从 x-y 平面的仰角。r 是从原点到一个点。”
好的,我将方位角称为 Theta,将仰角称为 Phi。现在,我想构建一个将笛卡尔坐标转换为球形的函数。这就是我所做的
function [y] = my_car2sph(x)
d = sqrt(x(1)^2 + x(2)^2 + x(3)^2);
Phi = acos(x(3)/d); % elevation angle
Theta = atan2(x(2),x(1)); % azimuth
y = [d; Theta; Phi];
现在,这个函数的输出
>> my_car2sph([1; 1; 1])
ans =
1.7321 <--- d
0.7854 <--- Theta (azimuth)
0.9553 <--- Phi (elevation)
现在,如果我使用 Matlab 的函数,这就是我得到的
>> [azimuth,elevation,r] = cart2sph(1,1,1)
azimuth =
0.7854
elevation =
0.6155
r =
1.7321
>>
为什么仰角(Phi)不一样?
【问题讨论】:
-
在命令窗口中输入
edit cart2sph以查看代码。 -
@horchler,为此信息 +1。