Skip to content

Latest commit

 

History

History
73 lines (44 loc) · 2.28 KB

08.upside_down.adoc

File metadata and controls

73 lines (44 loc) · 2.28 KB

8. 거꾸로 세상

Keyword

  • Model, View

8-1. 화면상의 좌표

컴퓨터 화면의 좌표와 사람들이 일반적으로 생각하는 좌표계와는 다르다.

figure35
Figure 1. 좌표계

좌표 변환

Method

  • void rotate(Axis axis, int angle)

    • 회전

  • void translate(int dx, int dy)

    • 이동

  • void scale(int ratio)

    • 크기 조정


Exam-8-1-1. World class에 회전 함수를 추가해 보자

  • 회전 방향은 오브젝트 단위로 설정하거나, 함수 호출 시 지정할 수 있다.

    • setRotation

  • X축 또는 Y축을 기준으로 회전한다.

    • 회전할 축은 enum으로 선언한다.

    • AXIS_X, AXIS_Y

확인


Exam-8-1-2. World class에 이동 함수를 추가해 보자

  • 이동량을 미리 설정하거나, 함수 호출 시 지정할 수 있다(setTranslation, translate)

  • X축, Y축 또는 양 축을 기준으로 이동한다.(translate)

확인


Exam-8-1-3. World class에 확대/축소 함수를 추가해 보자

  • 크기 조정 비율을 미리 설정하거나, 함수 호출 시 지정할 수 있다.(setScale, scale)

  • 공간 크기를 확대 또는 축소한다(scale)

확인


도형 그리기

  • 단순히 하나의 점에 대한 좌표 변환은 X축을 기준으로 회전시킨 후 Y의 시작 위치를 조정하면 된다.

  • 도형의 경우, 기준점 변경은 문제가 되지 않지만, 그려지는 도형이 위에서 아래로 그려지는지, 아래에서 위로 그려지는지에 따라 도형의 위치가 달라질 수 있다.

  • 화면에 출력하는 라이브러리를 사용할 기준점을 변경하더라도 도형을 그리는 방향이 위에서 아래 방향으로 생각하는 것과 반대가 된다.

  • 도형은 회전뿐만 아니라 위치 이동도 필요하다.


Exam-8-1-4. 도형 그릴 때 좌표의 변환이 필요하다. Ball, box 등에서 도형을 그릴 때 좌표가 변환된 도형을 그리도록 수정해 보자

  • 도형은 화면상에서 좌측 위를 기준으로 한다. 좌표를 변환하게 되면, 우측 아래로 변경되어 기준점을 변경해 주어야 한다.