私があなたの質問を正しく理解していれば、(1)ここで説明する計算はおそらく十分に速いでしょう、(2)それは実際にはあなたが望むことをしないかもしれません、そして(3)実際には遅くなるもの実装は他の場所にあります。
だから、あなたはこれをすることを提案していると思います。(1)3次元空間における...何か...(おそらくユーザーの手)の位置を数回連続して特定します。(2)(たとえば){x、y}と{x、z}のそれぞれについて、各点の2つの座標を調べ、相関係数(式で説明されているもの)を計算して、+-に近いかどうかを確認します。 1.1。(3)両方の相関係数が+ -1に近い場合、ポイントはほぼ直線上にあります。その線の勾配を計算します(相関係数の式と同様の式を使用します)。(4)勾配が両方とも0または+-無限大に非常に近い場合、線は1つの軸にほぼ平行です。これは、認識しようとしている場合です。
1:十分に速いですか?おそらく、毎秒50フレーム程度でサンプリングしている可能性があり、ジェスチャの実行に1秒かかる場合があります。つまり、50のポジションのオーダーになります。したがって、必要な算術演算の総数はおそらく数百です(適度な数の平方根を含む)。最悪の場合、低速のARMプロセッサなどでエミュレートされた浮動小数点でこれを実行している可能性があります。その場合、各算術演算には数百サイクルかかる可能性があるため、全体が100kサイクルになる可能性があります。これは、100MHzで動作する非常に低速なプロセッサの場合は約1ミリ秒になります。この計算にかかる時間に問題はありません。
2:それは正しいことですか?それが正しい計算であるかどうかは明らかではありません。たとえば、ユーザーの手がx軸に沿って数回すばやく前後に移動するとします。それはあなたに良い結果を与えるでしょう。それはあなたが望むものですか?ユーザーが必要なジェスチャを試みたが、わずかに間違った角度で移動したとします。あなたは否定的な結果を得るかもしれません。それらがx軸に沿って少し移動し、次にy軸に沿って少し移動するとします。次に、{x、y}、{x、z}、および{y、z}平面への投影はすべてテストに合格します。これらはすべて、あなたが望まないかもしれない結果のようです。
3:実際のコストはどこにあるのでしょうか。これはすべて、すでに(x、y、z)座標を持っていることを前提としています。それらを取得することは、おそらくそれらを処理するよりも費用がかかるでしょう。たとえば、ある種のカメラベースのシステムを使用している場合は、フレームごとに重要な画像処理が行われます。または、加速度計からのデータを統合している可能性があります(ちなみに、これは厄介な不正確な位置結果をもたらす可能性があります)。位置データを取得するために、フィルタリングやその他の計算を行っている可能性があります。このような計算を実行するコストは、そもそも座標を取得するコストよりも大幅に少ないと思います。