asin和atan2的区别 (CPA指向相关)

背景

在 CPA 零位系(CPA-Zero) 基础上:

绕 y 轴(俯仰轴) 转动角度 𝜃

再绕 z 轴(方位轴) 转动角度 𝜓

你现在有 CPA 零位系下的单位指向矢量:
P=(Px,Py,Pz)T \mathbf{P} = (P_x, P_y, P_z)^\mathsf{T} P=(Px,Py,Pz)T

并且已知 CPA 的几何关系:
{Px=cos⁡θcos⁡ψ Py=sin⁡ψ Pz=−sin⁡θcos⁡ψ \begin{cases} P_x = \cos\theta \cos\psi \ \\ P_y = \sin\psi \ \\ P_z = -\sin\theta \cos\psi \end{cases} ⎩ ⎨ ⎧Px=cosθcosψ Py=sinψ Pz=−sinθcosψ

(1)ψ=sin⁡−1(Py)\psi = \sin^{-1}(P_y)ψ=sin−1(Py)

这是直接利用第二个分量:

只用了 𝑃𝑦=sin𝜓

本质是在 y--z 平面投影里反算 ψ

它的隐含前提是:cosψ≥0, 也就是ψ∈−π/2​,π/2​

(2)

始正切关系式: tan⁡ψ=sin⁡ψcos⁡ψ=PyPx/cos⁡θ \tan \psi = \frac{\sin \psi}{\cos \psi} = \frac{P_y}{P_x / \cos \theta} tanψ=cosψsinψ=Px/cosθPy

简化后得到:tan⁡ψ=Pycos⁡θPx \\tan \\psi = \\frac{P_y \\cos \\theta}{P_x} tanψ=PxPycosθ

使用 atan2 函数完整象限判断的表达式:ψ=atan2⁡(Pycos⁡θ,Px) \\psi = \\operatorname{atan2}(P_y \\cos \\theta, P_x) ψ=atan2(Pycosθ,Px)

输出范围:(−π,π]

结论

反三角函数只给角度值,atan2 给方向。

所以在姿态 / 指向 / 标定问题里:

永远优先 atan2,除非你能 100% 证明 asin 不会出问题。

相关推荐
宵时待雨10 分钟前
linux笔记归纳18:传输层协议TCP
linux·网络·笔记·网络协议·tcp/ip
逆境不可逃16 分钟前
Pi Agent 学习笔记:一次提问背后的工具调用循环
java·笔记·学习
一起聊电气24 分钟前
2026工厂智能照明改造观察:从能耗可视化到电气安全协同的落地路径
其他
Ztt66666666635 分钟前
紫釉高筒壶向上收紧,修长器身更显精神
经验分享·笔记·其他·百度·微信公众平台
疯狂打码的少年1 小时前
【计算机网络】UDP协议与TCP/UDP对比(面向连接vs无连接)
笔记·tcp/ip·计算机网络·udp
巧克力味的桃子2 小时前
模拟大厂大模型方向面试题
笔记
Peng7112 小时前
浙大数据可视化课程学习笔记
笔记·学习·信息可视化
今儿敲了吗2 小时前
02词云生成器
笔记·python
hanlin032 小时前
刷题笔记:力扣第287题-寻找重复数
笔记·算法·leetcode
你想知道什么?3 小时前
神经网络-学习笔记
笔记·神经网络·学习