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

Chương trình C ++ để tính diện tích tam giác bằng cách sử dụng các yếu tố xác định

Trong phần này, chúng ta sẽ xem cách tìm diện tích của một tam giác trong không gian tọa độ 2D bằng cách sử dụng các định thức ma trận. Trong trường hợp này, chúng tôi đang xem xét không gian là 2D. Vì vậy, chúng tôi đang đưa từng điểm vào ma trận. Đặt các giá trị x vào cột đầu tiên, y vào cột thứ hai và lấy 1 làm cột thứ ba. Sau đó tìm yếu tố quyết định chúng. Diện tích của tam giác sẽ bằng một nửa giá trị định thức. Nếu định thức là số âm, thì chỉ cần lấy giá trị tuyệt đối của nó.

$$ Khu vực \:=\:tuyệt đối \:của \ begin {pmatrix} \ frac {1} {2} \ begin {vmatrix} x_1 \:\:y_1 \:\:1 \\ x_2 \:\:y_2 \ :\:1 \\ x_3 \:\:y_3 \:\:1 \ end {vmatrix} \ end {pmatrix} $$

Ở đây chúng ta giả sử rằng đây là ma trận 3x3, vì vậy hàm định thức không thể tìm thấy định thức của ma trận không phải là 3x3.

Mã mẫu

#include<iostream>
#include<cmath>
using namespace std;
double det(double M[3][3]) {
   double t1 = (M[1][1] * M[2][2])-(M[1][2] * M[2][1]);
   double t2 = (M[1][0] * M[2][2])-(M[1][2] * M[2][0]);
   double t3 = (M[1][0] * M[2][1])-(M[1][1] * M[2][0]);
   return (M[0][0]*t1) + (-M[0][1]*t2) + (M[0][2]*t3);
}
main() {
   double M[3][3];
   cout << "Enter Point p1 (x, y):";
   cin >> M[0][0] >> M[0][1];
   M[0][2] = 1;
   cout << "Enter Point p2 (x, y):";
   cin >> M[1][0] >> M[1][1];
   M[1][2] = 1;
   cout << "Enter Point p3 (x, y):";
   cin >> M[2][0] >> M[2][1];
   M[2][2] = 1;
   int determinant = det(M);
   cout << "The area is: " << fabs(determinant) * 0.5;
}

Đầu ra

Enter Point p1 (x, y):3 4
Enter Point p2 (x, y):6 4
Enter Point p3 (x, y):3 9
The area is: 7.5