두 점(x,y) 와(x1,y1)의 거리 공식은 아래와 같다
위의 공식으로 자바로 두점의 거리를 구해보자
위의 공식을 자바로 표현하기 위해서는 아래의 메서드가 필요하다.
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 |