0

次のように、コレクションに (x、y、z) 座標を生成しています。

this.facePoints3D = frame.Get3DShape();

foreach(Vector3DF vector in facePoints3D)  //vector has 121 points
 {
    float zvect = vector.Z           //collect z-points which is made of 121 points
 } 
//where Vector3DF is a struct of floats (x, y, z)

問題は、C# で zvect の L2 ノルムを見つけたいということです。msdn のドキュメント Web サイトを見てみましたが、これを行うための事前定義された方法はないようです。

誰にもアイデアはありますか?

4

1 に答える 1

0

私の理解では、L2ノルムは次の関数で計算できます。

float L2Norm(Vector3DF Vec)
{
    return Math.Sqrt( Vec.X * Vec.X + 
                      Vec.Y * Vec.Y + 
                      Vec.Z * Vec.Z );
}

Linq を使用すると、コレクション内のベクトルの値は次のように計算できます。

foreach (double L2Norm in facePoints3D.Select(L2Norm))
{
    // do something with L2Norm
}
于 2015-01-07T14:23:56.420 に答える