메서드 Math.pow() ,Math.sqrt()로 두 점의 거리 구하기

두 점(x,y) 와(x1,y1)의 거리 공식은 아래와 같다

 

etc-image-0

위의 공식으로 자바로 두점의 거리를 구해보자

 

위의 공식을 자바로 표현하기 위해서는 아래의 메서드가 필요하다.

Math.pow() <-제곱

double형태로 인수를 넣으면 인수의 제곱근을 출력해준다.


Math.sqrt() <-루트

괄호 안에 식으 넣어주면 루트가 쒸어진다.

 

아래의 예제 처럼 사용할 수 있다. 

class TwoPoint {  
	int x;  
	int y;
	TwoPoint (int x, int y){  //new TwoPoint(1,1) 을 메인메서드에서 매개변수로 받는다.
		this.x=x; //인스턴수변수.x=1로 대입
		this.y=y;//인스턴수변수.y=1로 대입
	}
	
	 double getDistance(int x1, int y1) {  //메인메서드에서 2를 대입 받는다.
		return Math.sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));  //Math.sqrt자체를 루트모양으로 생각해 루트로 덮는다고 이미지화 하면 이해하기 쉬울 것 같다.
		
        //아래 처럼 Math.pow로 직접 제곱을 해줄 수있지만 메소드를 많이 사용하는것은 비용이많이 드는 작업이라고한다.
		//하지만 그렇다고 빠른코드를 만들기위해 코드를 복잡하게 하는 것은 좋지 않다고 한다.
		//return Math.sqrt(Math.pow(x-x1,2)+Math.pow(y-y1,2));
	}
} 

	
class Distance{  
public static void main(String[] args) {  //메인 메소드 실행
	TwoPoint p = new TwoPoint(1,1);      //객체생성, TowPont클래스 호출
  System.out.println(p.getDistance(2,2));  //참조변수 p가 가르키는메서드에 2를 대입
}
}
		
        
        
        
        
/* Console
 * 1.4142135623730951
 */

 

'Programing > java' 카테고리의 다른 글

Java JVM과 JDK 이해하기  (0) 2022.02.10
스택(Stack)이란, 스택활용  (0) 2022.01.17
#Java 문자열 다루기  (0) 2021.09.10
#Java 문자열의 표현-Character and string  (0) 2021.09.10
#Java 숫자와 연산  (0) 2021.09.10