[파이썬] 점과 두 점을 지나는 직선 사이의 거리

Hayun Lee·2021년 8월 3일
1

이모저모 파이썬

목록 보기
1/2
post-thumbnail

두 점(A, B)을 지나는 직선과 점(P) 사이의 거리(PB)를 구해보자.

점 P에서 직선 AB에 내린 수선의 발을 H라 하자. 선분 PH의 길이가 점 P와 직선 AB사이의 거리가 된다.
또한, 삼각형 PAB의 넓이는 AB*PH/2 임을 알 수 있다.

삼각형 PAB의 넓이는 외적으로 구할 수 있고, 선분 AB의 길이는 두 점 사이의 거리로 구할 수 있으므로 선분 PH의 길이는 다음처럼 구할 수 있다.

def cal_dist(x1, y1, x2, y2, a, b):
    area = abs((x1-a) * (y2-b) - (y1-b) * (x2 - a))
    AB = ((x1-x2)**2 + (y1-y2)**2) **0.5
    distance = area/AB
    return distance

1개의 댓글

comment-user-thumbnail
2023년 4월 20일

안녕하세요 0.5를 곱하는 이유가 뭔가요?

답글 달기