본문 바로가기
자바(intellij)

JAVA(intelij) / 세 점 주어졌을때 사이 각도 구하기

by clean_h 2021. 3. 16.
728x90

세 점이 주어졌을때 그 사이 각도 구하여본다.

다음처럼 점 A, B, C가 주어졌을때 사이 각도를 구한다.

 

코드

    public static float getAngleFromThreePoints(Point p1, Point p2, Point p3){
        float p12 = (float) Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));
        float p23 = (float) Math.sqrt(Math.pow(p2.x - p3.x, 2) + Math.pow(p2.y - p3.y, 2));
        float p31 = (float) Math.sqrt(Math.pow(p3.x - p1.x, 2) + Math.pow(p3.y - p1.y, 2));
        float radian = (float) Math.acos((p12*p12 + p23*p23 - p31*p31) / (2 * p12 * p23));
        float degree = (float) (radian / Math.PI * 180);
        return degree;
    }

다음 코드로 Point p1, Point p2, Point p3 점 세개를 입력받아서 각도를 출력할 수 있다.

이때 p2가 가운데 점이다.

728x90

댓글