본문 바로가기
잡기술

두 수를 비교하고싶은데 분모가 0인 경우

by 감조자림 2023. 4. 30.

세 개의 점 a, b, c가 있고 각 점의 좌표는 a.xpos, b.ypos ... 와 같은 식으로 나타내자.

이 때 a, b, c가 한 직선 위에 있는지를 알고 싶으면 기울기를 비교해서 알 수 있다.

(a.xpos - b.xpos) / (a.ypos - b.ypos) // a, b의 기울기
(b.xpos - c.xpos) / (b.ypos - c.ypos) // b, c의 기울기

 

위의 두 값이 같다면 세 점은 한 직선위에 있다고 볼 수 있다.
그런데 분모가 0이 되는 경우 오류가 발생하는데, 간단하게 해결하는 방법이 있다.

(a.xpos - b.xpos) * (b.ypos - c.ypos) 
(b.xpos - c.xpos) * (a.ypos - b.ypos)

양 변에 각각의 분모를 곱해준 것이다. 
제일 위의 식 처럼 나누기를 하고 추가로 0인 경우의 예외처리를 따로 해도 되지만 아래와 같은 방식이 훨씬 편하다.

 

댓글