【发布时间】:2014-08-06 04:38:25
【问题描述】:
我正在尝试使用“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)));
我需要一个可以实现我的目标的数学方程式。 Angle = atan(pitch / pitch -roll) 未绘制所需的角度。仅对于相同的俯仰和滚动,它才成立并抛出 90 度(这意味着我正在向前倾斜传感器)。那么你能否用一些数学表达式替换角度公式,它可以根据滚动和俯仰生成倾斜角度。
我附上了输出的屏幕截图。如果您发现我的问题模棱两可,请原谅并建议改进问题,以便我得到回答。
【问题讨论】:
-
两个参数版本
atan2(y,x)对你有帮助吗?这是从 x 和 y 坐标获取角度的标准方法。 -
验证您的倾斜台是否以您使用的单位(弧度/度)返回值,然后确保将倾斜台的运动范围校准到所代表的角度范围.用手写出你需要的方程式,然后把倾斜表吐出的数字代入。古老的慢科学方法……
-
俯仰和横滚是在度数方面。我没有关于 X、Y、Z 的信息,我想利用倾斜传感器的串行数据来绘制沿您倾斜方向移动的线,您的倾斜传感器在其中。
标签: c math pitch tilt-sensor