Berechnen Sie den Winkel zwischen zwei Vektoren in C++

Muhammad Adil 12 Oktober 2023
Berechnen Sie den Winkel zwischen zwei Vektoren in C++

Die Vektormathematik ist ein Teilgebiet der Mathematik, das sich mit Vektoren befasst, bei denen es sich um geometrische Objekte mit Betrag und Richtung handelt. Beispielsweise ist der Winkel, der von den Enden eines Vektors gebildet wird, gleich dem Winkel, der von zwei Vektoren gebildet wird.

Es sei darauf hingewiesen, dass der von den beiden Vektoren gebildete Winkel zwischen und 180° bleibt. Dieser Artikel beschreibt, wie man den Winkel zwischen zwei Vektoren berechnet.

Berechnen Sie den Winkel zwischen zwei Vektoren in C++

Wir können den Winkel eines Vektors A berechnen, indem wir das Skalarprodukt von A und einem anderen Vektor B nehmen. Das Skalarprodukt wird berechnet, indem ihre Beträge multipliziert und ihre Winkel addiert werden. Lass es uns unten lernen.

Skalarprodukt in C++

Das Skalarprodukt ist eine der mathematischen Operationen, die zwei Vektoren akzeptieren und einen Skalar zurückgeben. So können wir zum Beispiel einen Winkel des Vektors A berechnen, indem wir das Skalarprodukt von A und einem anderen Vektor B nehmen.

Das Skalarprodukt wird berechnet, indem ihre Beträge multipliziert und ihre Winkel addiert werden. Die Größe des Vektors ist die Länge des Liniensegments von seinem Ursprung bis zu seiner Spitze, während sich die Richtung des Vektors auf seine spezifische Ausrichtung bezieht.

Schritte zum Finden des Winkels in der 2D- und 3D-Ebene

Die Schritte zum Ermitteln des Winkels zwischen zwei Vektoren in 2D- und 3D-Ebenen sind wie folgt:

  • Deklarieren Sie zwei Vektoren mit ihrer Länge und Richtung.
  • Finden Sie die Größe jedes Vektors.
  • Berechnen Sie das Skalarprodukt dieser beiden Vektoren.
  • Ermitteln Sie den Winkel zwischen den beiden Vektoren mit θ = Cos-1 [(a · b) / (|a| |b|)], wenn die Vektoren in der 2D-Ebene liegen.
  • Wenn sich die Vektoren in einer 3D-Ebene befinden, verwenden Sie diese Formel θ = Cos-1 [(a · b · c) / (|a| |b| |c|)]

Abgesehen von den 2D- und 3D-Ebenen gibt es eine kritische Ausnahme, die Sie als Programmierer kennen müssen.

Wenn sich Ihre Vektoren in einer Ebene mit einem bekannten Normalenvektor n befinden und nicht zufällig platziert sind, wird die Rotationsachse in die gleiche Richtung wie n ausgerichtet, und die Ausrichtung von n legt eine Ausrichtung für fest diese Achse.

In dieser Situation können Sie θ = Cos-1 [(a · b) / (|a| |b|)] ändern, indem Sie n zur Determinante hinzufügen, um sie zu vergrößern.

Beispiel

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

Verwandter Artikel - C++ Vector