C++에서 두 벡터 사이의 각도 계산
벡터 수학은 크기와 방향이 있는 기하학적 객체인 벡터를 다루는 수학의 한 분야입니다. 예를 들어 벡터의 꼬리가 이루는 각도는 두 벡터가 이루는 각도와 같습니다.
두 벡터가 형성하는 각도는 0°
와 180°
사이에 유지된다는 점에 유의해야 합니다. 이 문서에서는 두 벡터 사이의 각도를 계산하는 방법에 대해 설명합니다.
C++에서 두 벡터 사이의 각도 계산
A
와 다른 벡터 B
의 내적을 취하여 벡터 A
의 각도를 계산할 수 있습니다. 내적은 크기를 곱하고 각도를 더하여 계산합니다. 아래에서 배워봅시다.
C++의 내적
내적은 두 벡터를 받아들이고 스칼라를 반환하는 수학 연산 중 하나입니다. 예를 들어 A
와 다른 벡터 B
의 내적을 취하여 벡터 A
의 각도를 계산할 수 있습니다.
내적은 크기를 곱하고 각도를 더하여 계산합니다. 벡터의 크기는 원점에서 끝까지 선분의 길이이며 벡터의 방향은 특정 방향을 나타냅니다.
2D 및 3D 평면에서 각도를 찾는 단계
2D 및 3D 평면에서 두 벡터 사이의 각도를 찾는 단계는 다음과 같습니다.
- 길이와 방향이 있는 두 개의 벡터를 선언합니다.
- 각 벡터의 크기를 찾습니다.
- 이 두 벡터의 내적을 계산합니다.
- 벡터가 2D 평면에 있는 경우
θ = Cos-1 [(a · b) / (|a| |b|)]
를 사용하여 두 벡터 사이의 각도를 찾습니다. - 벡터가 3D 평면에 있는 경우 다음 공식을 사용합니다.
θ = Cos-1 [(a · b · c) / (|a| |b| |c|)]
2D 및 3D 평면 외에도 프로그래머가 알아야 할 중요한 예외가 있습니다.
벡터가 임의로 배치되지 않고 알려진 법선 벡터 n
이 있는 평면 내에 위치할 때 회전축은 n
과 같은 방향으로 향하고 n
의 방향은 다음에 대한 방향을 고정합니다. 그 축.
이 상황에서 n
을 행렬식에 추가하여 크기를 늘리면 θ = Cos-1 [(a · b) / (|a| |b|)]
를 수정할 수 있습니다.
예
float Angles(const x &a, const y &b) {
float d = dot(a, b) / (length(v0) * length(v1));
return acos(demo(d, 3, 4f)) * RAD2DEG;
}
Muhammad Adil is a seasoned programmer and writer who has experience in various fields. He has been programming for over 5 years and have always loved the thrill of solving complex problems. He has skilled in PHP, Python, C++, Java, JavaScript, Ruby on Rails, AngularJS, ReactJS, HTML5 and CSS3. He enjoys putting his experience and knowledge into words.
Facebook