Class 2 Find the Torsional Angle in Python HackerRank Solution

Hello Programmers, In this post, you will know how to solve the Class 2 Find the Torsional Angle in Python HackerRank Solution. This problem is a part of the HackerRank Python Programming Series.

Ezoicreport this adClass 2 Find the Torsional Angle in Python HackerRank Solution
Class 2 Find the Torsional Angle in Python HackerRank Solutions

One more thing to add, don’t directly look for the solutions, first try to solve the problems of Hackerrank by yourself. If you find any difficulty after trying several times, then you can look for solutions.

Class 2 Find the Torsional Angle in Python Hacker Rank Solution

Ezoicreport this adProblem

You are given four points A, B, c and D in a 3-dimensional Cartesian coordinate system. You are required to print the angle between the plane made by the points A, B, C and B, C, D in degrees(not radians). Let the angle be PHI.
Cos(PHI) = (X*Y) / |X| |Y| where X = ABxBC and Y = BC x CD.Here, X.Y means the dot product of X and Y, and ABxBC means the cross product of vectors and . Also, AB = B – A.

Input Format :

One line of input containing the space separated floating number values of the X,Y and Z coordinates of a point.

Output Format :

Output the angle correct up to two decimal places.

Sample Input :

0 4 5
1 7 6
0 5 9
1 7 2

Sample Output :

8.19

Class 2 Find the Torsional Angle in Python HackerRank Solutions

import math
class Points(object):
# Class 2 - Find the Torsional Angle in Python - HackerRank Solution START
    def __init__(self, x, y, z):
        self.x = x
        self.y = y
        self.z = z
    def __sub__(self, no):
        x = self.x - no.x
        y = self.y - no.y
        z = self.z - no.z
        return Points(x, y, z)
    def dot(self, no):
        x = self.x * no.x
        y = self.y * no.y
        z = self.z * no.z
        return x + y + z
    def cross(self, no):
        x = self.y * no.z - self.z * no.y
        y = self.z * no.x - self.x * no.z
        z = self.x * no.y - self.y * no.x
        return Points(x, y, z)
# Class 2 - Find the Torsional Angle in Python - HackerRank Solution END
    def absolute(self):
        return pow((self.x ** 2 + self.y ** 2 + self.z ** 2), 0.5)
if __name__ == '__main__':
    points = list()
    for i in range(4):
        a = list(map(float, input().split()))
        points.append(a)
    a, b, c, d = Points(*points[0]), Points(*points[1]), Points(*points[2]), Points(*points[3])
    x = (b - a).cross(c - b)
    y = (c - b).cross(d - c)
    angle = math.acos(x.dot(y) / (x.absolute() * y.absolute()))
    print("%.2f" % math.degrees(angle))

Disclaimer: The above Problem (Class 2 – Find the Torsional Angle in Python) is generated by Hackerrank but the Solution is Provided by BrokenProgrammers. This tutorial is only for Educational and Learning purposes.

Next: Zipped in python HackerRank Solution

Sharing Is Caring

Leave a Comment

Ezoicreport this ad