Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ คำนวณพื้นที่สามเหลี่ยมด้วย Determinant

คำนวณพื้นที่สามเหลี่ยมในพื้นที่ 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