WinGyu_coder

Python, 파이썬 3개의 점 좌표에 대한 각도 구하기, 모듈 math 사용하기 본문

Python파이썬

Python, 파이썬 3개의 점 좌표에 대한 각도 구하기, 모듈 math 사용하기

WinGyu 2023. 11. 8. 14:22

안녕하세요, 파이썬 math 모듈을 사용해서 3개의 좌표에 대한 각도를 구해보겠습니다.

 

A, B, C 좌표를 가지고 있을때 X 좌표를 계산하는 방법입니다.

 

좌표는 각각 X 가로, Y 세로를 가지고 있습니다.

 

ex) print(a)   -> [400, 200]   # A 좌표

 

아래 코드는 3개의 좌표를 가지고 있었을때 B 좌표를 중간으로 X각도를 구하는 방법입니다.

 

 

 

def angle_between_three_points(A, B, C):
    try:
        BA = [A[0]-B[0], A[1]-B[1]]
        BC = [C[0]-B[0], C[1]-B[1]]

        dot_product = BA[0]*BC[0] + BA[1]*BC[1]
        magnitude_BA = math.sqrt(BA[0]**2 + BA[1]**2)
        magnitude_BC = math.sqrt(BC[0]**2 + BC[1]**2)

        cos_theta = dot_product / (magnitude_BA * magnitude_BC)
        angle = math.acos(cos_theta)
        
        return math.degrees(angle)
    except:
        return 180
        
        
 if __name__== "__main__":
    A = (200, 100)
    B = (200, 200)
    C = (300, 200)

    print(angle_between_three_points(A, B, C))

 

맨 아래는 임시값을 넣어두었고 실행결과 90.0도로 정상 작동합니다.