3.1.4 RotatedRect 클래스
RotatedRect 클래스는 회전된 사각형을 표현하는 클래스입니다. RotatedRect 클래스는 회전된 사각형의 중심 좌표를 나타내는 center, 사각형의 가로 및 세로 크기를 나타내는 size, 회전 각도 정보를 나타내는 angle을 멤버 변수로 가집니다. 간략화한 RotatedRect 클래스 정의를 코드 3-4에 나타냈습니다.
코드 3-4 간략화한 RotatedRect 클래스 정의
01 class RotatedRect 02 { 03 public: 04 RotatedRect(); 05 RotatedRect(const Point2f& _center, const Size2f& _size, float _angle); 06 RotatedRect(const Point2f& point1, const Point2f& point2, const Point2f& point3); 07 08 void points(Point2f pts[]) const; 09 Rect boundingRect() const; 10 Rect_<float> boundingRect2f() const; 11 12 Point2f center; 13 Size2f size; 14 float angle; 15 };
• 4행 기본 생성자. 모든 멤버 변수를 0으로 초기화합니다.
• 5행 (_center, _size, _angle)을 인자로 받는 생성자. center = _center, size = _size, angle = _angle로 초기화합니다.
• 6행 (point1, point2, point3)을 인자로 받는 생성자. 인자로 전달된 세 점은 회전된 사각형의 세 꼭지점 좌표를 나타냅니다.
• 8행 RotatedRect::points() 멤버 함수는 회전된 사각형은 네 꼭지점 좌표를 pts 인자에 저장합니다.
• 9행 RotatedRect::boundingRect() 멤버 함수는 회전된 사각형을 포함하는 최소 크기의 사각형 정보를 반환합니다(정수 단위).
• 10행 RotatedRect::boundingRect2f() 멤버 함수는 회전된 사각형을 포함하는 최소 크기의 사각형 정보를 반환합니다(실수 단위).
• 12~14행 멤버 변수. center는 사각형의 중심 좌표, size는 사각형의 크기, angle은 시계 방향 회전 각도를 나타냅니다.