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
'자바(intellij)' 카테고리의 다른 글
JAVA(intelij) / 실수형(double)을 정수형(int)으로 변환하는 방법 (0) | 2021.01.26 |
---|---|
자바(intelij) / 좌표(위도,경도)로 실제 거리 구하기 (1) | 2021.01.26 |
자바(IntelliJ) / gitignore 적용하기 (0) | 2021.01.20 |
댓글