三维矢量的有效幅值计算

时间:2018-01-17 17:38:11

标签: c++ algorithm vector magnitude

我正在使用3轴加速度计和Arduino进行惯性测量项目。我希望Arduino接收x,y和z g值并吐出幅度。由于| a | = sqrt(x ^ 2 + y ^ 2 + z ^ 2)计算成本很高,我想研究是否有一种替代算法可以用来加速它(我愿意牺牲一点精度)。< / p>

我读到了Alpha-max, Beta-min method,但似乎只适用于2D矢量。 3D矢量有什么相似之处吗?

编辑:程序语言是C ++

2 个答案:

答案 0 :(得分:1)

如果您有快速计算two-dimensional幅度的方法,则可以在这些条件下重新调整three-dimensional幅度。

三维幅度可以从中得出 Pythagorean theorem.

|a| = sqrt(sqrt(x^2 + y^2)^2 + z^2) = sqrt(x^2 + y^2 + z^2)

答案 1 :(得分:0)

Normalizing Spatial Vectors without Square Root 如果使用此人发布的内容来计算单位矢量,则可以将原始矢量的x除以计算出的单位矢量的x。