You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

压力表指针角度计算:象限对应公式相同的疑问

为什么压力表角度计算中第一、第四象限用相同公式?

要搞懂这个问题,得先理清三个关键:图像坐标系的方向、arctan(y/x)的返回值特性,以及代码里final_angle的定义逻辑。

1. 先明确坐标定义

这里的x_angle和y_angle是指针末端相对于表盘中心的图像坐标差:

  • x_angle:右为正,左为负
  • y_angle:下为正,上为负(这是摄像头图像的标准坐标系,和常规数学坐标系y轴向上的方向相反)

2. arctan(y/x)的返回值范围

np.arctan(y/x)的结果res只会落在(-90°, 90°)之间:

  • 当x>0时:
    • 第一象限(y>0):y/x是正数,res为0°~90°的正值
    • 第四象限(y<0):y/x是负数,res为-90°~0°的负值

3. 推导final_angle的逻辑

代码里的final_angle是从表盘正上方(图像里的y轴负方向)逆时针旋转的角度,需要把图像坐标的向量转换为这个角度:

  • 对于图像第一象限(x>0,y>0):
    对应的数学向量是(x_angle, -y_angle)(因为数学坐标系y轴向上),这个向量的角度θ = arctan(-y_angle/x_angle) = -res。
    从正上方逆时针转的角度 = θ - 90°(正上方对应数学坐标系的90°),把θ=-res代入得:-res -90°,加上360°转正值后就是270° - res。

  • 对于图像第四象限(x>0,y<0):
    对应的数学向量是(x_angle, -y_angle)(此时-y_angle是正数),向量角度θ = arctan(-y_angle/x_angle) = -res(因为res=arctan(y/x)=arctan(负数/正数)=负值,-res就是正值)。
    同样代入角度公式:θ -90° = -res -90°,加360°后还是270° - res。

所以不管是第一还是第四象限,推导后的最终表达式完全一致,代码里就复用了同一个公式。

验证示例

  • 第一象限:x=1,y=1,res=45°,final_angle=270-45=225°(对应从正上方逆时针转225°,正好是图像里的右下方)
  • 第四象限:x=1,y=-1,res=-45°,final_angle=270 - (-45)=315°(对应从正上方逆时针转315°,正好是图像里的右上方)

内容的提问来源于stack exchange,提问作者Chopper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 18:45:28