더북(TheBook)

RotatedRect 클래스는 앞서 살펴본 Point_, Size_, Rect_ 클래스와 달리 템플릿 클래스가 아니며, 모든 정보를 float 자료형을 사용하여 표현합니다. 즉, 중심점 좌표는 Point2f 클래스를 사용하고, 크기 정보는 Size2f 클래스를 사용합니다. 회전 각도는 float 자료형을 사용합니다.

RotatedRect 클래스를 사용하는 코드 작성 방법에 대해 알아보겠습니다. 중심 좌표가 (40, 30), 크기는 40×20, 시계 방향으로 30°만큼 회전된 사각형 객체는 다음 코드를 이용하여 생성할 수 있습니다.

RotatedRect rr1(Point2f(40, 30), Size2f(40, 20), 30.f);

이 코드에 의해 생성되는 rr1 객체의 형태를 그림 3-2(a)에 나타냈습니다.

만약 회전된 사각형 객체의 네 꼭지점 좌표를 알고 싶다면 RotatedRect::points() 멤버 함수를 사용합니다. RotatedRect::points() 함수에는 크기가 4인 Point2f 자료형의 배열 이름을 전달합니다.

Point2f pts[4];
rr1.points(pts);

이 코드를 실행하면 회전된 사각형의 네 꼭지점 좌표가 pts 배열에 저장됩니다. 실제로 코드를 실행하면 pts[0] = (17.6795, 28.6603), pts[1] = (27.6795, 11.3397), pts[2] = (62.3205, 31.3397), pts[3] = (52.3205, 48.6603) 형태로 좌표가 설정됩니다. RotatedRect::points() 함수는 사각형의 좌측 하단 꼭지점부터 시계 방향으로 꼭지점 좌표를 추출합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.