벡터의 길이를 축으로 그리고 축을 따라 회전시켜 계산할 수 있습니까? 그리고 축을 사용하여 벡터의 길이를 측정 할 수 있습니까? 그렇다면 Pythagoras/square-root로 길이를 계산하는 것보다 비용이 덜 듭니까? 내가 단결하고 있어요 (C#을)쿼터니언을 사용하는 벡터의 길이
예 : 내가 그것을 작동 듯이 시도
Vector3 myVector(x, y, z);
Vector3 myVectorRealigned = Quaternion.FromToRotation(myVector, Vector3.up) * myVector;
float myVectorLength1 = sqrt(myVector.x^2 + myVector.y^2 + myVector.z^2);
float myVectorLength2 = myVectorRealigned.y;
! 그러나이 방법들 중 어느 것을 사용하는 것이 가장 좋습니다/가장 적은 비용입니까?
Visual Studio를 사용하는 경우 프로파일 러가 내장되어 있습니다. 그것은 당신이 두 사람의 성과를 측정하게 할 것입니다. – byxor
@BrandonIbbotson이 말한 것을 제안하지만 Quaternion 계산에는 sqrt가 필요하고 회전에는 표준보다 훨씬 많은 곱셈이 필요하기 때문에 규범이 더 빠를 것이라고 상상할 수 있습니다. 성능을 위해 – TheDjentleman
을 사용하십시오. 때로는 제곱의 합을 sqrt하지 않는 것이 좋습니다. 거리를 비교할 때처럼. – Bijan