我想知道如何使用我的Android手机的加速度计的坐标来计算连接加速度计和树的底部(B)以及加速度计和树的顶部(T )。
加速度计每秒获取3个轴的加速度值,因此我计算了平均值,并得出: 对于面向B的电话:Ay1 = -9.69m.s ^ -1和Az1 = 0.71m.s ^ -1 对于面向T的电话:Ay2 = -9.71m.s ^ -1和Az2 = 0.71m.s ^ -1
我与树的距离为D = 20m。 我想最后知道H的值。所以我想知道如何计算角度,然后找到树的高度。
感谢您的帮助
答案 0 :(得分:0)
我们需要的角度是指举起和设备举起之间的角度。由于重力矢量指向世界,所以这很简单(假设您指向设备的y轴):
cos angle = -a.y / sqrt(a.x^2 + a.y^2 + a.z^2)
我们从您的阅读中得到两个角度:
angle1 = 4.19065°
angle2 = 4.18205°
您已经看到角度非常接近,因为两个加速度值也非常接近。顺便说一句,我想知道您是否真的指向y轴,因为重力值表明您在两种情况下都将手机几乎直立。
无论如何,如果我们假设两个角度都是正确的,那么我们现在可以假设目标l
的长度来计算各个三角形的高度。然后:
tan (90° - angle) = h / l
假设l=20 m
,这给了我们两个高度值:
h1 = 272.958 m
h2 = 273.521 m
这些是手机高度以上的高度。从理论上讲,一个应该是积极的,另一个应该是消极的。树的高度将是两个高度之差:
treeH = h2 - h1
treeH = 0.56338 m
正如您在整个示例中所看到的那样,您的读数必须非常准确。不过,这就是您计算树高的方法。