좌표 변환: 회전 이동
아래 그림에서와 같이, 원래의 좌표를 (x, y)라 하고, y축으로부터의 각도를 θ라고 하자. 또, 회전 시키고자하는 각도를 δ라 하고, 회전된 좌표를 (x', y')라고 한다. 이 때, 회전의 기준점과 원래의 좌표 사이의 거리를 r이라고 하면, 회전된 이후의 좌표와 회전 기준점 사이의 거리 또한 r로써 동일하다. 수식으로 정리하면, x = r sinθ y = r cosθ x' = r sin(θ+δ) y' = r cos(θ+δ) 삼각함수의 덧셈정리 를 이용하여 x'와 y'를 풀어보면, x' = r (sinθ cosδ + cosθ sinδ) = r sinθ cosδ + r cosθ sinδ y' = r (cosθ cosδ - sinθ sinδ) = r cosθ cosδ - r sinθ sinδ x = r sinθ, y = r cosθ이므로, x' = x cosδ + y sinδ y' = y cosδ - x sinδ δ가 반시계방향인 경우에는, x' = x cosδ - y sinδ y' = y cosδ + x sinδ 라는 수식으로 정리될 수 있다. 이렇게 구한 공식을 도형의 각 꼭지점에 대해서 적용하면 회전 이동한 도형을 구할 수 있다. public void rotateBy ( float d , float x0 , float y0) { float dX = x - x0 ; float dY = y - y0 ; double rad = Math . abs ( Math . toRadians (d)) ; float cosD = ( float ) Math . cos (rad) ; float sinD = ( float ) Math . sin (rad) ; if (d>= 0 ) { x = dX * cosD + dY * sinD ; y = dY * cosD...