개발자 면접 공부/그래픽스

벡터의 내적으로 라디안 및 디그리 구하기

chogyujin 2023. 9. 29. 18:05
728x90

1. 개요

안녕하세요 오늘은 벡터의 내적으로 라디안 및 디그리를 구하는 방식을 알아 보겠습니다.


2. 내적의 공식

내적의 공식은 벡터 A와 B과 있으면 2D방면에서 (Ax*Bx) + (Ay*By)입니다.
하지만 다른 방식으로 구할수도 있습니다 바로 벡터의 크기 입니다.
|A||B|cosΘ 입니다.
벡터크기는 하나당 sqrt(Ax^2+Ay^2)으로 볼수 있습니다.
그리고 cos인의 그래프를 보면 다음과 같습니다.

각도가 0도면 1 90도면 0입니다.


3. 라디언 구하기

그래서 라디언을 구하는 방식은 다음과 같습니다.
acos(A+B/|A|*|B|) 입니다.
이것을 C++로 표현하면 다음과 같습니다.

    double a2 = sqrt(pow(2,2)+pow(5,2));
    double b2 = sqrt(pow(-2,2)+pow(0,2));
    double top = (2*-2)+(0*5);
    double bottom = a2*b2;
    double answer = top/bottom;
    double radian = acos(answer);

이렇게 표현합니다.


4. 디그리 구하기

디그리 즉 각도를 구하기 위해서는 라디언 값을 이용하여 구할수 있습니다.
라디언 값에 곱 360/2PI를 하면됩니다.

    double a2 = sqrt(pow(2,2)+pow(5,2));
    double b2 = sqrt(pow(-2,2)+pow(0,2));
    double top = (2*-2)+(0*5);
    double bottom = a2*b2;
    double answer = top/bottom;
    double radian = acos(answer);
    double degree = radian*(360/(PI*2));

또한 디그리를 라디언으로 구하는 방식은

    double a2 = sqrt(pow(2,2)+pow(5,2));
    double b2 = sqrt(pow(-2,2)+pow(0,2));
    double top = (2*-2)+(0*5);
    double bottom = a2*b2;
    double answer = top/bottom;
    double radian = acos(answer);
    double degree = radian*(360/(PI*2));
    double rollback = degree*((PI*2)/360);

입니다.

'개발자 면접 공부 > 그래픽스' 카테고리의 다른 글

1픽셀의 바이트  (0) 2024.01.19
IK 와 FK의 차이점  (0) 2023.05.11
쿼드 트리 & 옥 트리  (0) 2022.11.16
퐁 모델  (2) 2022.09.13
쉐이더란? (사용 이유)  (0) 2022.09.04