Mặt phẳng (Plane) – Mặt phẳng 2D mở rộng vô hạn. Góc giữa hai mặt phẳng = góc giữa hai vectơ pháp tuyến của chúng.
Phương trình mặt phẳng
P1: ax + by + cz + d = 0 → Vectơ pháp tuyến n1 = (a, b, c) P2: hx + iy + jz + k = 0 → Vectơ pháp tuyến n2 = (h, i, j)
Công thức góc
cos θ = |n1·n2| / (|n1| × |n2|) = |a×h + b×i + c×j| / √(a²+b²+c²)√(h²+i²+j²)
θ = arccos(...) × (180/π) (độ)
Chương trình C++
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double a, b, c, d, h, i, j, k;
cout << "Nhap he so mat phang 1 (a b c d): ";
cin >> a >> b >> c >> d;
cout << "Nhap he so mat phang 2 (h i j k): ";
cin >> h >> i >> j >> k;
double dot = a*h + b*i + c*j;
double norm1 = sqrt(a*a + b*b + c*c);
double norm2 = sqrt(h*h + i*i + j*j);
double cos_theta = abs(dot) / (norm1 * norm2);
// Giới hạn do sai số float
if (cos_theta > 1) cos_theta = 1;
double angle_rad = acos(cos_theta);
double angle_deg = angle_rad * 180.0 / M_PI;
cout << "Goc giua hai mat phang: " << angle_deg << " do";
return 0;
}
Kết quả (ví dụ)
Nhap he so mat phang 1 (a b c d): 2 2 -1 -5 Nhap he so mat phang 2 (h i j k): 3 -3 5 -3 Goc giua hai mat phang: 104.724 do