2015-01-07 5 views
0

콜렉션 좌표 :최대 수집 항목이 있습니까? 다음 I는 (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의 설명서 웹 사이트를 둘러 보았고 미리 정의 된 방법으로 보이지 않습니다.

아이디어가 있습니까?

+0

'Vector3DF'는 어디에 정의되어 있습니까? 프레임 워크의 유형입니까? – Codor

+1

@Codor 그는 "Vector3DF는 수레 (x, y, z)의 구조체입니다." – Franck

+0

오 코멘트 덕분에 나는 그 코멘트를 간과하고있었습니다. – Codor

답변

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 
} 
+0

'Math.Abs'는 복잡한 벡터가 아니기 때문에이 경우 건너 뛸 수 있습니다. – Dirk

+0

힌트를 보내 주셔서 감사합니다. 분명히 내 두뇌는 자동 조종 장치에있다. – Codor

+0

감사하지만 제 경우에는 위에서 입력 한 121 개의 zvects에 대한 표준에 관심이 있습니다. – Calorified