라벨이 좌표 변환인 게시물 표시

좌표 변환: 회전 이동

이미지
아래 그림에서와 같이, 원래의 좌표를 (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...

좌표 변환: 대칭 이동

이미지
점에 대한 대칭 이동 대칭 이동의 기준점과 도형의 꼭지점 사이의 거리를 구한다음, 기준점을 지나 그 거리만큼 더 이동하면 대칭 이동한 점의 좌표를 구할 수 있다. 우선, 기준점과 다각형의 각 꼭지점들 간의 거리 dx와 dy를 구한다. 각각의 꼭지점에 대해서 평행 이동한 다음 이동한 점들을 연결하면 대칭 이동한 도형을 얻을 수 있다. 축에 대한 대칭 이동 x축과 나란한 축에 대한 대칭의 경우에는 각 꼭지점의 x좌표는 변하지 않고 y좌표만 대칭 이동하면 된다. 마찬가지로, y축에 나란한 축에 대한 대칭의 경우에는 각 꼭지점의 y좌표가 변하지 않는다. 위 그림에서 왼쪽은 점에 대한 대칭 이동이며, 오른쪽은 직선에 대한 대칭이동이다. 그려놓고 보니 점에 대한 대칭 이동은 회전 이동과 같은 결과가 되었다.

좌표 변환: 스케일

이미지
평면 상의 어떤 도형의 크기를 변경하기 위해서는 도형을 구성하는 꼭지점의 좌표 이외에도 배율을 나타내는 scale factor와 크기 변경의 기준점 좌표도 알아야 한다. Scale factor는 1.0을 기준으로 이보다 크면 확대, 작으면 축소로 가정한다. 우선, 도형의 각 꼭지점 좌표와 기준점 좌표 사이의 거리(d)를 구한다. 이 때, x 성분과 y 성분을 분리하는 것이 좋다. 이렇게 구한 각각의 거리 값에 배율을 곱한다. 그러면, 기준점으로부터 계산된 거리만큼을 이동한 새로운 점의 좌표를 얻을 수 있고, 이 좌표들은 크기가 변환된 새로운 도형의 꼭지점들이다. 위 그림에서는 크기 변경의 기준점을 붉은 색으로 표시했으며, 왼쪽에서는 조형의 가운데에, 오른쪽에서는 왼쪽 아래에 각각 지정하였다. 파란색 사각형을 2배 크기로 확대한 도형이 초록색 도형이다. 어떤 도형의 크기를 s배로 변경하는 것은 기준점에서 도형의 각 꼭지점 까지의 거리를 s배로 변경하는 것이다.

좌표 변환: 이동

이미지
평면 상의 어떤 도형을 x방향으로 dx만큼, y 방향으로 dy만큼 이동하려는 경우, 다각형의 각 꼭지점(원의 경우에는 중심점을) 좌표 (x, y)에 dx, dy를 더한다. 즉, 점 (x, y)을 dx, dy만큼 이동한 새로운 점의 좌표를 (x', y')라고 할 때, x' = x + dx y' = y + dy 이다. 이를 각 꼭지점에 대해서 수행하면 평행이동된 도형을 구할 수 있다.