Open In App

Program to find the Centroid of the triangle

Last Updated : 18 Apr, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

Given the vertices of the triangle. The task is to find the centroid of the triangle:
Examples: 
 

Input: A(1, 2), B(3, -4), C(6, -7)
Output: (3.33, -3)

Input: A(6, 2), B(5, -9), C(2, -7)
Output: (6.5, -9)


 


 


Approach:Suppose if the vertices of a triangle are (x1, y1) (x2, y2) (x3, y3) then centroid of the triangle can be find from the following formula: 

    $$ X = \frac{x_{1}+x_{2}+x_{3}}{2} $$ $$ Y = \frac{y_{1}+y_{2}+y_{3}}{2} $$

1. Set x1, y1, x2, y2, x3, y3 to the coordinates of the vertices of the triangle.
2. Calculate the average x-coordinate of the vertices as x = (x1 + x2 + x3) / 3.
3. Calculate the average y-coordinate of the vertices as y = (y1 + y2 + y3) / 3.
4. Print "Centroid = (" + x + ", " + y + ")".

C++

// CPP program to find the centroid of triangle
#include <bits/stdc++.h>
using namespace std;
 
// Driver code
int main()
{
    // coordinate of the vertices
    float x1 = 1, x2 = 3, x3 = 6;
    float y1 = 2, y2 = -4, y3 = -7;
 
    // Formula to calculate centroid
    float x = (x1 + x2 + x3) / 3;
    float y = (y1 + y2 + y3) / 3;
 
    cout << setprecision(3);
    cout << "Centroid = "
         << "(" << x << ", " << y << ")";
 
    return 0;
}

                    

Java

// Java program to find the centroid of triangle
import java.util.*;
import java.lang.*;
 
class GFG
{
     
// Driver code
public static void main(String args[])
{
    // coordinate of the vertices
    float x1 = 1, x2 = 3, x3 = 6;
    float y1 = 2, y2 = -4, y3 = -7;
 
    // Formula to calculate centroid
    float x = (x1 + x2 + x3) / 3;
    float y = (y1 + y2 + y3) / 3;
 
    //System.out.print(setprecision(3));
    System.out.println("Centroid = "
        + "(" + x + ", " + y + ")");
}
}
 
// This code is contributed
// by Akanksha Rai(Abby_akku)

                    

Python 3

# Python3 program to find
# the centroid of triangle
 
# Driver code    
if __name__ == "__main__" :
 
    # coordinate of the vertices
    x1, x2, x3 = 1, 3, 6
    y1, y2, y3 = 2, -4, -7
     
    # Formula to calculate centroid
    x = round((x1 + x2 + x3) / 3, 2)
    y = round((y1 + y2 + y3) / 3, 2)
 
    print("Centroid =","(",x,",",y,")")
 
# This code is contributed by ANKITRAI1

                    

Javascript

<script>
 
// javascript program to find the centroid of triangle
 
// Driver code
 
// coordinate of the vertices
var x1 = 1, x2 = 3, x3 = 6;
var y1 = 2, y2 = -4, y3 = -7;
 
// Formula to calculate centroid
var x = (x1 + x2 + x3) / 3;
var y = (y1 + y2 + y3) / 3;
 
// document.write(setprecision(3));
document.write("Centroid = "
    + "(" + x.toFixed(2) + ", " + y + ")");
 
// This code contributed by shikhasingrajput
</script>

                    

C#

// C# program to find the
// centroid of triangle
using System;
 
class GFG
{
     
// Driver code
static public void Main ()
{
 
    // coordinate of the vertices
    float x1 = 1, x2 = 3, x3 = 6;
    float y1 = 2, y2 = -4, y3 = -7;
     
    // Formula to calculate centroid
    float x = (x1 + x2 + x3) / 3;
    float y = (y1 + y2 + y3) / 3;
     
    //System.out.print(setprecision(3));
    Console.Write("Centroid = " +
                  "(" + x + ", " + y + ")");
}
}
 
// This code is contributed
// by RaJ

                    

PHP

<?php
// PHP program to find the
// centroid of triangle
 
// Driver code
 
// coordinate of the vertices
$x1 = 1;
$x2 = 3 ;
$x3 = 6;
$y1 = 2;
$y2 = -4;
$y3 = -7;
 
// Formula to calculate centroid
$x = round(($x1 + $x2 + $x3) / 3, 2);
$y = round(($y1 + $y2 + $y3) / 3, 2);
 
echo "Centroid = " .
     "(" .$x .", " .$y .")";
 
// This code is contributed
// by ChitraNayal
?>

                    

Output
Centroid = (3.33, -3)

Time complexity: O(1), since there is no loop or recursion.

Auxiliary Space: O(1), since no extra space has been taken.

New Approach:

Another approach to find the centroid of a triangle is to use the concept of vectors.

  1. Let the vertices of the triangle be A(x1, y1), B(x2, y2), and C(x3, y3).
  2. Then, the centroid G can be found using the following formula:                                                                                                           G = (A + B + C) / 3                                                                                                                                                                   where A, B, and C are position vectors of the respective vertices. In other words,                                                                 G = ((x1 + x2 + x3) / 3, (y1 + y2 + y3) / 3)

Below is the code for the above approach :

C++

// C++ program to find the centroid of a triangle
#include <iostream>
using namespace std;
 
// Structure to store coordinates of a point
struct Point {
    float x, y;
};
 
// Function to find the centroid of a triangle
Point findCentroid(Point A, Point B, Point C)
{
    float x = (A.x + B.x + C.x) / 3;
    float y = (A.y + B.y + C.y) / 3;
    Point G = { x, y };
    return G;
}
 
// Driver code
int main()
{
    // Coordinates of the vertices
    Point A = { 1, 2 }, B = { 3, -4 }, C = { 6, -7 };
    // Find the centroid of the triangle
    Point G = findCentroid(A, B, C);
 
    // Print the centroid
    cout << "Centroid = (" << G.x << ", " << G.y << ")"
         << endl;
 
    return 0;
}

                    

Python3

# Python3 program to find the centroid of a triangle
import math
 
# Structure to store coordinates of a point
class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y
 
# Function to find the centroid of a triangle
def findCentroid(A, B, C):
    x = (A.x + B.x + C.x) / 3
    y = (A.y + B.y + C.y) / 3
    G = Point(round(x, 6), round(y, 6))
    return G
 
 
# Driver code
if __name__ == "__main__":
    # Coordinates of the vertices
    A = Point(1, 2)
    B = Point(3, -4)
    C = Point(6, -7)
 
    # Find the centroid of the triangle
    G = findCentroid(A, B, C)
 
    # Print the centroid
    print("Centroid = ({}, {})".format(G.x, G.y))

                    

Java

// Java program to find the centroid of a triangle
import java.util.*;
 
// Class to store coordinates of a point
class Point {
    float x, y;
    Point(float x, float y) {
    this.x = x;
    this.y = y;
    }
}
 
// Class to find the centroid of a triangle
class Centroid {
    static Point findCentroid(Point A, Point B, Point C) {
    float x = (A.x + B.x + C.x) / 3;
    float y = (A.y + B.y + C.y) / 3;
    Point G = new Point(x, y);
    return G;
    }
 
    // Driver code
    public static void main(String[] args) {
        // Coordinates of the vertices
        Point A = new Point(1, 2), B = new Point(3, -4), C = new Point(6, -7);
 
        // Find the centroid of the triangle
        Point G = findCentroid(A, B, C);
 
        // Print the centroid
        System.out.println("Centroid = (" + G.x + ", " + G.y + ")");
    }
}

                    

Javascript

// Class to store coordinates of a point
class Point {
  constructor(x, y) {
    this.x = x;
    this.y = y;
  }
}
 
// Class to find the centroid of a triangle
class Centroid {
  static findCentroid(A, B, C) {
    let x = (A.x + B.x + C.x) / 3;
    let y = (A.y + B.y + C.y) / 3;
    let G = new Point(x, y);
    return G;
  }
 
  // Driver code
  static main() {
    // Coordinates of the vertices
    let A = new Point(1, 2), B = new Point(3, -4), C = new Point(6, -7);
 
    // Find the centroid of the triangle
    let G = Centroid.findCentroid(A, B, C);
 
    // Print the centroid
    console.log(`Centroid = (${G.x}, ${G.y})`);
  }
}
 
// Call the main method
Centroid.main();

                    

C#

// C# program to find the centroid of a triangle
using System;
 
// Structure to store coordinates of a point
struct Point
{
    public float x;
    public float y;
}
 
// Class to find the centroid of a triangle
class Centroid {
    // Function to find the centroid of a triangle
    public static Point findCentroid(Point A, Point B,
                                     Point C)
    {
        float x = (A.x + B.x + C.x) / 3;
        float y = (A.y + B.y + C.y) / 3;
        Point G = new Point{ x = x, y = y };
        return G;
    }
    // Driver code
    static void Main(string[] args)
    {
        // Coordinates of the vertices
        Point A = new Point{ x = 1, y = 2 };
        Point B = new Point{ x = 3, y = -4 };
        Point C = new Point{ x = 6, y = -7 };
 
        // Find the centroid of the triangle
        Point G = findCentroid(A, B, C);
 
        // Print the centroid
        Console.WriteLine("Centroid = ({0}, {1})", G.x,
                          G.y);
    }
}
// This code is contributed by sarojmcy2e

                    

Output
Centroid = (3.33333, -3)

Time complexity: O(1), as the calculations involved are simple arithmetic operations.

Auxiliary Space: O(1),  as the only variables used are the coordinates of the vertices and the centroid, which require constant space.



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads