,我想做什么?
使用Android的传感器,当一些糖尿病患者跑步去做体育锻炼时,我收集了很多加速度值。每个加速度值由三个分量组成:x轴加速度、y轴加速度、z轴加速度。然后,我需要计算每个加速度值的总震级及其方向。
,那么是什么造成了这个问题呢?
在我的数据中,加速度分量(x,y,z)的方向用符号(+或-)表示。例如:加速度值的X轴分量:+5.4ms^-2,y轴:-2.3ms^-2,z轴:-6.7ms^-2。因此,我想要这样的方向(+或-)来表示每个加速度值的总大小。
我用square_root(x^2 + y^2 + z^2)公式计算了每个加速度的大小。但是,我不知道我怎么能计算出那个震级的方向?也就是说,我不知道总加速度的方向(+或-)?
注:
我检查了很多这样的问答(例如1,2,3.)。我也查过android文档了。虽然文档谈到了这个方向,但我不明白如何实现以找到总加速度大小的特定方向(+或-)。此外,我检查了很多关于加速的文章。尽管如此,问题仍未得到解决。
发布于 2020-04-14 17:51:19
你只需用简单的数学- y/x=tan theta就可以得到方向,其中θ是xy平面中原点的角度。类似的数学可以让你从另一个角度考虑。对你来说,问题只是相对于手机,而不是用户。所以,如果他的手机在他口袋里的角度,你不会得到你想要的答案。如果是颠倒的话就更糟了。
那就是说-我怀疑这件事的实际需要。如果你想得到相对的努力,他们的锻炼,规模应该是足够的。如果你想做一些像映射这样的事情,加速度数据太吵,无法精确。
发布于 2020-04-14 05:42:55
你应该考虑加速度的每个分量的方向。想一想三维矢量。没有办法确定正性或负性,它的方向用指向同一方向的单位向量来表示。因此,从本质上说,三维矢量(总加速度)不是正的,也不是负的(当然,除非所有三个分量都是一个或另一个)。因此,您应该考虑代码中每个元素的积极性。
https://stackoverflow.com/questions/61201292
复制相似问题