C++ Program to Check if Three Points Form a Triangle

C++ Program to Check if Three Points Form a Triangle

C++ Program to Check if Three Points Form a Triangle


Introduction

In geometry, a triangle is defined by three distinct points that are not collinear, meaning they do not lie on the same straight line. Checking whether three points can form a triangle is a fundamental concept in computational geometry with practical applications in computer graphics, game development, and geospatial analysis.

In this C++ program, we verify if three given points form a triangle by checking their collinearity using the slope formula. If the points are collinear, they cannot form a triangle; otherwise, they can.


Formula

To determine if three points P1(x1, y1), P2(x2, y2), and P3(x3, y3) can form a triangle, we use the following condition:

  • Calculate the area of the triangle using the determinant formula:
  • Area = 0.5 * |x1*(y2 - y3) + x2*(y3 - y1) + x3*(y1 - y2)|
  • If the area is 0, the points are collinear, and they do not form a triangle. Otherwise, they do.

The determinant approach is efficient and avoids issues with slope calculation, such as division by zero.


Code

#include <iostream>
#include <cmath>

using namespace std;

int main() {
    double x1, y1, x2, y2, x3, y3, area;

    // Input coordinates of the three points
    cout << "Enter the x and y coordinates of the first point (x1 y1): ";
    cin >> x1 >> y1;

    cout << "Enter the x and y coordinates of the second point (x2 y2): ";
    cin >> x2 >> y2;

    cout << "Enter the x and y coordinates of the third point (x3 y3): ";
    cin >> x3 >> y3;

    // Calculate the area of the triangle
    area = 0.5 * abs(x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2));

    // Check if the points form a triangle
    if (area == 0) {
        cout << "The points do not form a triangle." << endl;
    } else {
        cout << "The points form a triangle." << endl;
    }

    return 0;
}
    

Output

When you run the program, it prompts you to enter the coordinates of three points. Based on the input, the program calculates the area of the triangle and determines if the points form a triangle.

Example:

Enter the x and y coordinates of the first point (x1 y1): 0 0
Enter the x and y coordinates of the second point (x2 y2): 4 0
Enter the x and y coordinates of the third point (x3 y3): 2 3
The points form a triangle.
    

Another Example:

Enter the x and y coordinates of the first point (x1 y1): 1 1
Enter the x and y coordinates of the second point (x2 y2): 2 2
Enter the x and y coordinates of the third point (x3 y3): 3 3
The points do not form a triangle.
    

Explanation

The program works by calculating the area of the triangle formed by the three points using the determinant formula. If the computed area is zero, it means the points are collinear and do not form a triangle.

Steps:

  • Take input for the coordinates of three points.
  • Calculate the area using the formula:
    • Area = 0.5 * |x1*(y2-y3) + x2*(y3-y1) + x3*(y1-y2)|
  • Check if the area is 0:
    • If yes, print that the points do not form a triangle.
    • If no, print that the points form a triangle.

This approach is computationally efficient and avoids pitfalls such as division by zero in slope calculations.


Conclusion

Determining if three points form a triangle is a simple yet important problem in computational geometry. This program demonstrates how to use mathematical formulas and logical checks to solve such problems. The determinant method provides a robust way to check collinearity without encountering numerical errors that might arise with other methods.