Program to check congruency of two triangles - GeeksforGeeks

18 Jul, 2018
Given four arrays of 3 numbers each which represents sides and angles of two triangles. The task is to check if the two triangles are Congruent or not. Also print the theorem by which they are congruent.
Note: All sides and angles given as input are for valid triangles.
Examples:
Input : side1 = [3, 4, 5]  angle1 = [90, 60, 30]
        side2 = [4, 3, 5]  angle2 = [60, 30, 90]
Output: Triangles are congruent by SSS SAS ASA AAS HL.  

Input : side1 = [3, 5, 6]  angle1 = [80, 50, 50]
        side2 = [1, 1, 1]  angle2 = [60, 60, 60]
Output: Triangles are not congruent

Congruent triangles are two or more triangles that have all corresponding sides that are equal or a pair of sides and between angle are equal or a pair of angle and side between are equal or a pair of angle and other side are equal or hypotenuse and one side are equal.
The congruency of triangles can be proved by the following theorems:
Side-Side-Side (SSS) Congruency criteria: If all the sides of a triangle are equal to the sides of another triangle then the triangles are said to be congruent by the property of Side-Side-Side (SSS).In above triangle ABC and A’B’C’ if, AB=A’B’ and BC=B’C’ and CA=C’A’ then, triangles are congruent.Side-Angle-Side (SAS) Congruent criteria: If two sides of the two triangles are equal and the angle between them is same in both triangle then the triangles are said to be congruent by the property of Side-Angle-Side (SAS). In above triangle ABC and A’B’C’ if, AB=A’B’ and BC=B’C’ and  =  triangles are congruent.Angle-Side-Angle (ASA) Congruent criteria :If two angles of the two triangles are equal and the length of side between them is same in both triangle then the triangles are said to be congruent by the property of Angle-Side-Angle (ASA).In above triangle ABC and A’B’C’ if,  = and  =  and BC=B’C’ then, triangles are congruent.Angle-Angle-Side (AAS) Congruent criteria :If two angles of the two triangles are equal and the length of other side is same in both triangle then the triangles are said to be congruent by the property of Angle-Angle-Side (AAS). In above triangle ABC and A’B’C’ if,  =  and  =  and CA=C’A’ then, triangles are congruent.Hypotenuse-Leg (HL) Congruent criteria :If the hypotenuse of the two triangles are equal and the length of any other one side is same in both triangle then the triangles are said to be congruent by the property of Hypotenuse-Leg (HL).
Side-Side-Side (SSS) Congruency criteria: If all the sides of a triangle are equal to the sides of another triangle then the triangles are said to be congruent by the property of Side-Side-Side (SSS).In above triangle ABC and A’B’C’ if, AB=A’B’ and BC=B’C’ and CA=C’A’ then, triangles are congruent.
Side-Angle-Side (SAS) Congruent criteria: If two sides of the two triangles are equal and the angle between them is same in both triangle then the triangles are said to be congruent by the property of Side-Angle-Side (SAS). In above triangle ABC and A’B’C’ if, AB=A’B’ and BC=B’C’ and  =  triangles are congruent.
Angle-Side-Angle (ASA) Congruent criteria :If two angles of the two triangles are equal and the length of side between them is same in both triangle then the triangles are said to be congruent by the property of Angle-Side-Angle (ASA).In above triangle ABC and A’B’C’ if,  = and  =  and BC=B’C’ then, triangles are congruent.
Angle-Angle-Side (AAS) Congruent criteria :If two angles of the two triangles are equal and the length of other side is same in both triangle then the triangles are said to be congruent by the property of Angle-Angle-Side (AAS). In above triangle ABC and A’B’C’ if,  =  and  =  and CA=C’A’ then, triangles are congruent.
Hypotenuse-Leg (HL) Congruent criteria :If the hypotenuse of the two triangles are equal and the length of any other one side is same in both triangle then the triangles are said to be congruent by the property of Hypotenuse-Leg (HL).
Below is the implementation of the above theorems.
# Python program to check # similarity between two triangles.   # Function for SAS congruencydef cong_sas(s1, s2, a1, a2):            s1 = [float(i) for i in s1]    s2 = [float(i) for i in s2]    a1 = [float(i) for i in a1]    a2 = [float(i) for i in a2]           s1.sort()    s2.sort()    a1.sort()    a2.sort()           # Check for SAS           # angle b / w two smallest sides is largest.    if s1[0] == s2[0] and s1[1] == s2[1]:                   # since we take angle b / w the sides.        if a1[2] == a2[2]:                     return 1                   if s1[1] == s2[1] and s1[2] == s2[2]:        if a1[0] == a2[0]:            return 1                   if s1[2] == s2[2] and s1[0] == s2[0]:        if a1[1] == a2[1]:            return 1           return 0      # Function for ASA congruencydef cong_asa(s1, s2, a1, a2):            s1 = [float(i) for i in s1]    s2 = [float(i) for i in s2]    a1 = [float(i) for i in a1]    a2 = [float(i) for i in a2]           s1.sort()    s2.sort()    a1.sort()    a2.sort()           # Check for ASA           # side b / w two smallest angle is largest.    if a1[0] == a2[0] and a1[1] == a2[1]:                   # since we take side b / w the angle.        if s1[2] == s2[2]:                     return 1                   if a1[1] == a2[1] and a1[2] == a2[2]:        if s1[0] == s2[0]:            return 1                   if a1[2] == a2[2] and a1[0] == a2[0]:        if s1[1] == s2[1]:            return 1           return 0      # Function for AAS congruencydef cong_aas(s1, s2, a1, a2):            s1 = [float(i) for i in s1]    s2 = [float(i) for i in s2]    a1 = [float(i) for i in a1]    a2 = [float(i) for i in a2]           s1.sort()    s2.sort()    a1.sort()    a2.sort()           # Check for AAS           # side other two smallest angle is smallest or 2nd smallest.    if a1[0] == a2[0] and a1[1] == a2[1]:                   # since we take side other than angles.        if s1[0] == s2[0] or s1[1] == s2[1]:                     return 1                   if a1[1] == a2[1] and a1[2] == a2[2]:        if s1[1] == s2[1] or s1[2] == s2[2]:            return 1                   if a1[2] == a2[2] and a1[0] == a2[0]:        if s1[0] == s2[0] or s1[2] == s2[2]:            return 1           return 0   # Function for HL congruencydef cong_hl(s1, s2):            s1 = [float(i) for i in s1]    s2 = [float(i) for i in s2]     s1.sort()    s2.sort()            # Check for HL    if s1[2] == s2[2]:        if s1[1] == s2[1] or s1[0] == s2[0]:            return 1           return 0      # Function for SSS congruencydef cong_sss(s1, s2):            s1 = [float(i) for i in s1]    s2 = [float(i) for i in s2]     s1.sort()    s2.sort()            # Check for SSS    if(s1[0] == s2[0] and s1[1] == s2[1] and s1[2] == s2[2]):        return 1           return 0          # Driver Code s1 = [3, 4, 5]s2 = [4, 3, 5]           a1 = [90, 60, 30]a2 = [60, 30, 90]   # function call for SSS congruencysss = cong_sss(s1, s2)    # function call for SAS congruency sas = cong_sas(s1, s2, a1, a2)   # function call for ASA congruency asa = cong_asa(s1, s2, a1, a2)    # function call for AAS congruencyaas = cong_aas(s1, s2, a1, a2)  # function call for HL congruencyhl = cong_hl(s1, s2, )    # Check if triangles are congruent or not if sss or sas or asa or aas or hl :     print "Triangles are congruent by",    if sss: print "SSS",     if sas: print "SAS",    if asa: print "ASA",    if aas: print "AAS",    if hl: print "HL",else: print "Triangles are not congruent"
Triangles are congruent by SSS SAS ASA AAS HL

math
school-programming
triangle
Geometric
School Programming
Geometric
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Program for distance between two points on earth
Line Clipping | Set 1 (Cohen–Sutherland Algorithm)
Optimum location of point to minimize total distance
Check whether a given point lies inside a triangle or not
Closest Pair of Points | O(nlogn) Implementation
Python Dictionary
Arrays in C/C++
Inheritance in C++
Reverse a string in Java
C++ Classes and Objects