C++에서 두 벡터 사이의 각도 계산

Muhammad Adil 2023년10월12일
C++에서 두 벡터 사이의 각도 계산

벡터 수학은 크기와 방향이 있는 기하학적 객체인 벡터를 다루는 수학의 한 분야입니다. 예를 들어 벡터의 꼬리가 이루는 각도는 두 벡터가 이루는 각도와 같습니다.

두 벡터가 형성하는 각도는 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 avatar Muhammad Adil avatar

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

관련 문장 - C++ Vector