더북(TheBook)

이처럼 두 직선의 정보를 매개변수로 받아, 그 교점이 정수이면 Point 객체를 반환하는 메서드를 선언했습니다. 이 메서드를 어떻게 구현할 수 있을까요? 다음과 같이 두 직선이 있다고 합시다.

a1x + b1y + c1 = 0

a2x + b2y + c2 = 0

 

이 두 직선의 교점은 다음과 같이 계산됩니다.

이를 이용하여 교점을 구하고, 정수일 때만 반환하도록 메서드를 구현해봅시다.

double x = (double) (b1 * c2 - b2 * c1) / (a1 * b2 - a2 * b1);
double y = (double) (a2 * c1 - a1 * c2) / (a1 * b2 - a2 * b1);

if (x % 1 != 0 || y % 1 != 0) return null;

return new Point((long) x, (long) y);

 

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.