如何计算方向旋转坐标系

18视图(30天)
我有一个方向定义为方位和evation(例如Azi,海拔高度)。
我想计算这些值Azi坐标系后我海拔高度
旋转:首先在Z轴(角如Zrot),然后在旋转(在第一次旋转
Z轴)绕Y轴(角如Yrot)。
所以:我绕Z轴旋转坐标系,然后在“旋转”Y轴,我想
在旋转坐标系中计算Azi和海拔高度。
它可以如何做?

接受的答案

大卫Goodmanson
大卫Goodmanson 2020年1月12日
编辑:大卫Goodmanson 2020年1月12日
嗨UWM,
假设正确的旋转已经做出,然后调用生成的向量u,并确保它是标准化通过使用u /规范(u),假设u给出的三个组件的顺序(北部,东部,)在一个合适的坐标系统。假设从地平线高程测量,测量方位顺时针从北(与罗盘玫瑰),u的形式
因为(el) * cos (az)
因为(el) * sin (az)
罪(el)
你可以把第二个表达式除以第一个到达
el =最佳(u (3))
阿兹=量化(u (2) / (1)
有很多关于这一主题的变化取决于向量组件和角度的定义,但基本的想法是相同的。
3评论

登录置评。

答案(1)

马特·J
马特·J 2020年1月14日
编辑:马特·J 2020年1月14日
使用AxelRot (下载) 假设所有的角度给出了弧度,
[x, y, z] = sph2cart (Azi_Old Elev_Old 1);
P = AxelRot ([x, y, z, 0 1 0]。”,Zrot * 180 /π,[0,0,1],[]);
Q = AxelRot (P (: 1), Yrot * 180 /π,P (:, 2), []);
[Azi_New, Elev_New] = cart2sph (Q Q(1),(2)、问(3));
2的评论
UWM
UWM 2020年3月4日
嗨,马特,
我在这个问题上仍然有一些问题。看来,这两种方法在第一旋转(Z轴)我们得到新职位在旧坐标系(博罗变成POZn)和这个新位置(POZn)然后绕Yn轴旋转。
但是我的目标是有点不同:我想XoYoZo系统在佐薇轴旋转,得到博罗在新坐标系(博罗XnYnZn)和最后旋转XnYnZn系统Yn轴旋转后,获得博罗。
也许你可以帮助我
致以最亲切的问候

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!