Computer >> Máy Tính >  >> Lập trình >> lập trình C

Góc giữa hai máy bay trong 3D trong Chương trình C?


Sau đây chúng ta sẽ xem cách tính góc giữa hai mặt phẳng trong không gian ba chiều. Các mặt phẳng là P1 và P2. Các phương trình của Pi như dưới đây -

Góc giữa hai máy bay trong 3D trong Chương trình C?

Nếu góc là 'A' thì nó sẽ tuân theo quy tắc này -

Góc giữa hai máy bay trong 3D trong Chương trình C?

Ví dụ

#include <iostream>
#include <cmath>
using namespace std;
class Plane{
   private:
      double a, b, c, d;
   public:
      Plane(double a = 0, double b = 0, double c = 0, double d = 0){
         this->a = a;
         this->b = b;
         this->c = c;
         this->d = d;
      }
      double friend angle(Plane p1, Plane p2);
};
double angle(Plane p1, Plane p2){
   double nume = (p1.a * p2.a) + (p1.b * p2.b) + (p1.c * p2.c);
   double deno1 = (p1.a * p1.a) + (p1.b * p1.b) + (p1.c * p1.c);
   double deno2 = (p2.a * p2.a) + (p2.b * p2.b) + (p2.c * p2.c);
   return (180.0 / 3.14159) * acos(nume/ (sqrt(deno1) * sqrt(deno2)));
}
int main() {
   Plane p1(2.0, 2.0, -3.0, -5.0), p2(3.0, -3.0, 5.0, -6.0);
   cout << "Angle: " << angle(p1, p2) << " degree";
}

Đầu ra

Angle: 123.697 degree