본문 바로가기

JAVA

[JAVA/Kotlin] Polygon(도형)의 내각 구하기

for (step in 0 until dimens) {
  val p0 = cords[step]
  val p1 = cords[(step+1) % dimens]
  val p2 = cords[(step+2) % dimens]

  val a = (p1.x - p0.x).pow(2.0) + (p1.y - p0.y).pow(2.0)
  val b = (p1.x - p2.x).pow(2.0) + (p1.y - p2.y).pow(2.0)
  val c = (p2.x - p0.x).pow(2.0) + (p2.y - p0.y).pow(2.0)

  val angle = acos(( a + b - c) / sqrt(4 * a * b)) * 180.0 / Math.PI
}

 

dimens는 면의 개수

cords는 dimens 개의 Coordinate가 들어있다. 모든 좌표들은 선형적이여야 한다. (Left-Top, Right-top .... 과 같이) 마찬가지로 Point등을 사용할 수 있다.

 

 

또는 그냥 기하학 라이브러리를 사용하자!