使用俯仰和滚动值的倾斜传感器的图形设计

时间:2014-08-06 04:38:25

标签: c math pitch tilt-sensor

我正在尝试使用' C'来设计基于音高和滚动值的图形。因为我有一个倾斜传感器(加速度计),它会吐出滚动和俯仰值。我想利用一个能够向我展示倾斜传感器方向的图形。

以下是我程序中的一些代码,用于确定角度(基于俯仰和滚动值)。

szBuff []在R中有数据:SXXX.XX P:SXXX.XX \ r \ n格式

其中S =符号且R =滚动,P =音高。

    if (szBuff[2] == '+' && szBuff[12] == '-')
    {
       -------------------------------------    
       if(pitch>roll){                             
        Angle = atan(pitch / pitch- roll);             // Insert formula here 
       -------------------------------------
      }
    }  

这里的俯仰和滚动没有任何迹象。

我画了一条基于音高和滚动值偏转的线。使用上述算法,我计算它必须偏转的角度。

 line((left+150),(top+150),((left+150)+150*cos(Angle)),((top+150)+150*sin(Angle)));

我需要一个可以实现我的目标的数学方程式。角度= atan(俯仰/俯仰 - 滚动)不会绘制所需的角度。只有相同的俯仰和滚动才能保持正确并抛出90度(这意味着我正在向前倾斜传感器)。那么请你用一些数学表达式取代角度公式,这可以根据滚动和俯仰产生倾斜角度。

我附加了输出的屏幕截图。如果你发现我的问题含糊不清,那么请原谅并建议改进问题以便我得到答案。 enter image description here

1 个答案:

答案 0 :(得分:0)

通常,俯仰和滚动是角度。我假设滚动是围绕垂直轴旋转的角度,而俯仰是围绕水平轴旋转的角度。

然后您可以将3d位置计算为:

x = sin(roll) * cos(pitch)
y = sin(pitch)
z = cos(roll) * cos(pitch)

rollpitch都应包含其标志。

您似乎想要将此矢量投影到固定平面上,可能是xz平面。然后你将使用:

绘制它
line( left+150,
      top+150,
      left+150+150*x,
      top+150+150*z );