คำนวณพื้นที่สามเหลี่ยมในพื้นที่ 2D โดยใช้ determinant ของเมทริกซ์ 3x3 จัดจุด (x, y) ใส่คอลัมน์แรกและสอง คอลัมน์ที่สามเป็น 1 พื้นที่ = ½ × |determinant|
สูตร: Area = ½ × |det([x1 y1 1; x2 y2 1; x3 y3 1])|
โค้ดตัวอย่าง
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;
}
int main() {
double M[3][3];
cin >> M[0][0] >> M[0][1]; M[0][2] = 1;
cin >> M[1][0] >> M[1][1]; M[1][2] = 1;
cin >> M[2][0] >> M[2][1]; M[2][2] = 1;
double determinant = det(M);
cout << "Area: " << fabs(determinant) * 0.5;
}
ผลลัพธ์
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