C#의 sqrMagnitude() 함수는 다른 두 함수에 필요한 값비싼 제곱근 연산을 피할 수 있기 때문에 Distance() 및 Magnitude() 함수보다 빠릅니다.
Distance() 함수는 피타고라스 정리를 사용하여 두 벡터 사이의 거리를 계산하는데, 두 벡터의 구성 요소 간 차이의 제곱합의 제곱근을 구하는 것이 포함됩니다. Magnitude() 함수는 벡터의 크기(또는 길이)를 계산하는데, 이 역시 벡터의 구성 요소 제곱의 합의 제곱근을 구하는 방식으로 수행됩니다.
이와는 대조적으로 sqrMagnitude() 함수는 단순히 벡터의 제곱 크기를 계산하는데, 이는 벡터의 구성 요소 제곱의 합과 같습니다. 이렇게 하면 다른 두 함수에 필요한 값비싼 제곱근 연산을 피할 수 있습니다.제곱근 연산을 피하면 특히 많은 수의 벡터로 작업할 때 성능이 크게 향상될 수 있습니다. 제곱근 연산은 다른 산술 연산에 비해 상대적으로 비용이 많이 들고 반복적으로 수행하면 빠르게 합산될 수 있기 때문입니다.
그러나 sqrMagnitude() 함수는 실제 크기가 아닌 제곱된 크기를 반환하므로 실제 크기가 필요한 경우 성능 비용에도 불구하고 Magnitude() 함수를 사용해야 한다는 점에 유의하는 것이 중요합니다. 요약하면, C#의 sqrMagnitude() 함수는 다른 두 함수에 필요한 값비싼 제곱근 연산을 피할 수 있기 때문에 Distance() 및 Magnitude() 함수보다 빠릅니다. 그러나 실제 크기가 아닌 제곱된 크기를 반환하므로 실제 크기가 필요한 경우 성능 비용에도 불구하고 Magnitude() 함수를 사용해야 합니다.
'공부 > C#' 카테고리의 다른 글
절두체 컬링(Frustum Culling)이란? (0) | 2023.03.11 |
---|---|
오클루전 컬링(Occlusion Culling)이란? (0) | 2023.03.11 |
메카님 애니메이션(Mecanim Animation)이란? (0) | 2023.03.06 |
레거시 애니메이션(Lagacy Animation)이란? (0) | 2023.03.06 |
쿼터니언(Quaternions)이란? (0) | 2023.03.06 |