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
Share your thoughts in the comments

Similar Reads