반응형
두 벡터의 내적은
아래 식과 같이 벡터 a, b가 있을 때, 두 벡터 길이(||a||, ||b||)와 코사인 곱으로 구할 수 있습니다.
참고로 벡터 길이는 3차원을 예로 들었을 때 x제곱, y제곱, z제곱의 수치들을 모두 더해 루트를 씌어주면 계산이 됩니다.
위 식을 이용해서 두 벡터의 각을 구하려면 아래와 같이 아크코사인을 이용하면 됩니다. 아래 그림의 x, y는 벡터를 의미합니다. 벡터 x에 해당하는 3차원 좌표 x, y, z가 있고 벡터 y 또한 3차원 좌표 x, y, z가 있습니다. wiki 그림을 가져와서 혼동을 줄 수 있는 점 양해 바랍니다. -.-;
두 벡터의 길이가 1인 단위 벡터이면 두 벡터의 길이를 나눠줄 필요 없이(길이가 1이기 때문에) 아크코사인에 두 벡터의 내적만 이용해서 각을 구할 수 있습니다.
그리고 각을 구하는 위 식은 각의 범위가 0~180도이며, 180이 넘어갈 때는 360에서 각을 빼줘야 합니다. 각이 180이 넘어가는지 아닌지를 판별하기 위해서는 두 벡터의 외적을 이용해서 하게됩니다. 두 벡터의 외적과 두 벡터를 포함하는 평면의 노말을 내적해서 양수면 0~180도 이고, 외적이 음수면 180~360도로 보시면 됩니다.
사이각을 알 때 벡터를 계산하는 식은 아래 글을 참고하세요.
2024.03.08 - [3D Algorithm] - 사이각 벡터 계산
반응형
'3D Algorithm' 카테고리의 다른 글
3차원 스케일(Scale)과 비율(Ratio) (0) | 2024.02.20 |
---|---|
행렬식(Determinant)과 외적/내적 관계 (0) | 2024.02.06 |
변환행렬 사원수 변환 코드(Matrix to Quaternion using Eigen Library) (0) | 2024.01.12 |
Manifold와 Nonmanifold 차이(Mesh Processing) (0) | 2024.01.10 |
3차원 삼각형 면적 계산 5가지 방법(좌표, 길이, 각도, 외적 이용) (1) | 2023.12.26 |