이 페이지에서

QPolygon Class

QPolygon 클래스는 정수 정밀도를 사용하는 점의 목록을 제공합니다. 더 보기...

헤더: #include <QPolygon>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
상속: QList

참고: 이 클래스의 모든 함수는 재진입 가능합니다.

공개 함수

QPolygon()
QPolygon(const QList<QPoint> &points)
QPolygon(const QRect &rectangle, bool closed = false)
QRect boundingRect() const
bool containsPoint(const QPoint &point, Qt::FillRule fillRule) const
QPolygon intersected(const QPolygon &r) const
bool intersects(const QPolygon &p) const
void point(int index, int *x, int *y) const
QPoint point(int index) const
void putPoints(int index, int nPoints, int firstx, int firsty, ...)
void putPoints(int index, int nPoints, const QPolygon &fromPolygon, int fromIndex = 0)
void setPoint(int index, int x, int y)
void setPoint(int index, const QPoint &point)
void setPoints(int nPoints, const int *points)
void setPoints(int nPoints, int firstx, int firsty, ...)
QPolygon subtracted(const QPolygon &r) const
void swap(QPolygon &other)
(since 6.4) QPolygonF toPolygonF() const
void translate(int dx, int dy)
void translate(const QPoint &offset)
QPolygon translated(int dx, int dy) const
QPolygon translated(const QPoint &offset) const
QPolygon united(const QPolygon &r) const
operator QVariant() const
QDataStream &operator<<(QDataStream &stream, const QPolygon &polygon)
QDataStream &operator>>(QDataStream &stream, QPolygon &polygon)

상세 설명

QPolygon 객체는 QList<QPoint>입니다. QPolygon에 점을 추가하는 가장 쉬운 방법은 아래 그림과 같이 QList 의 스트리밍 연산자를 사용하는 것입니다.

QPolygon polygon;
polygon << QPoint(10, 20) << QPoint(20, 30);

QList 에서 제공하는 함수 외에도, QPolygon은 점에 특화된 몇 가지 함수를 제공합니다.

다각형의 각 점은 point() 함수에 해당 인덱스를 전달하여 가져올 수 있습니다. 다각형을 채우려면, QPolygon은 지정된 인덱스의 점을 설정하는 ` setPoint()` 함수, 다각형의 모든 점을 설정하는(지정된 점 수에 맞게 크기를 조정하는) ` setPoints()` 함수, 그리고 지정된 인덱스부터 주어진 수의 점을 다각형으로 복사하는(필요한 경우 다각형의 크기를 조정하는) ` putPoints()` 함수를 제공합니다.

QPolygon은 기하 함수를 위해 ` boundingRect()` 및 ` translate()` 함수를 제공합니다. QPolygon에 대한 보다 일반적인 변환을 수행하려면 ` QTransform::map()` 함수를 사용하십시오.

QPolygon 클래스는 암시적으로 공유됩니다.

QList, QPolygonF 및 QLine도 참조하십시오 .

멤버 함수 문서

[constexpr noexcept default] QPolygon::QPolygon()

점 없이 다각형을 생성합니다.

QList::isEmpty()도 참조하십시오 .

QPolygon::QPolygon(const QList<QPoint> &points)

지정된 points 를 포함하는 다각형을 생성합니다.

setPoints()도 참조하십시오 .

QPolygon::QPolygon(const QRect &rectangle, bool closed = false)

주어진 사각형( rectangle)을 기반으로 다각형을 생성합니다. ` closed `가 false인 경우, 다각형은 사각형의 네 점을 시계 방향으로 배열한 것으로만 구성되며, 그렇지 않은 경우 다각형의 다섯 번째 점은 ` rectangle.topLeft()`로 설정됩니다.

직사각형의 오른쪽 아래 모서리는 (rectangle.x() + rectangle.width(), rectangle.y() + rectangle.height()) 위치에 있음을 유의하십시오.

setPoints()도 참조하십시오 .

QRect QPolygon::boundingRect() const

다각형의 외곽 사각형을 반환하거나, 다각형이 비어 있는 경우 QRect(0, 0, 0, 0)을 반환합니다.

QList::isEmpty()도 참조하십시오 .

bool QPolygon::containsPoint(const QPoint &point, Qt::FillRule fillRule) const

지정된 point 가 지정된 fillRule 에 따라 다각형 내부에 있는 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.

QPolygon QPolygon::intersected(const QPolygon &r) const

이 다각형과 r 의 교집합인 다각형을 반환합니다.

다각형에 대한 집합 연산에서는 다각형을 면적으로 취급합니다. 닫히지 않은 다각형은 암시적으로 닫힌 것으로 간주됩니다.

intersects()도 참조하십시오 .

bool QPolygon::intersects(const QPolygon &p) const

현재 다각형과 주어진 다각형 p 이 어느 지점에서든 교차하는 경우 ` true `을 반환합니다. 또한 현재 다각형이 ` p`의 일부를 포함하거나 ` `의 일부에 포함되는 경우 ` true `을 반환합니다.

다각형에 대한 집합 연산은 다각형을 면적으로 취급합니다. 닫히지 않은 다각형은 암묵적으로 닫힌 것으로 간주됩니다.

intersected()도 참조하십시오 .

void QPolygon::point(int index, int *x, int *y) const

지정된 index 에 있는 점의 좌표를 *x 및 *y (유효한 포인터인 경우)로 추출합니다.

setPoint()도 참조하십시오 .

QPoint QPolygon::point(int index) const

지정된 index 에 해당하는 점을 반환합니다.

이 함수는 오버로드된 함수입니다.

void QPolygon::putPoints(int index, int nPoints, int firstx, int firsty, ...)

변수 인자 목록의 nPoints 개 점을 주어진 index 에서 이 다각형으로 복사합니다.

점들은 정수의 시퀀스로 주어지며, firstx 로 시작하여 firsty, 그 다음으로 이어집니다. index+nPoints 가 현재 크기를 초과할 경우 다각형의 크기가 조정됩니다.

다음 예제 코드는 다각형을 1개 점에서 3개 점으로 확장하여 (4,5), (6,7), (8,9) 세 점으로 이루어진 다각형을 생성합니다:

QPolygon polygon(1);
polygon[0] = QPoint(4, 5);
polygon.putPoints(1, 2, 6,7, 8,9);

다음 코드는 동일한 결과를 나타내지만, 여기서는 putPoints() 함수가 폴리곤을 확장하는 대신 기존 폴리곤을 덮어씁니다:

QPolygon polygon(3);
polygon.putPoints(0, 3, 4,5, 0,0, 8,9);
polygon.putPoints(1, 1, 6,7);

setPoints()도 참조하십시오 .

void QPolygon::putPoints(int index, int nPoints, const QPolygon &fromPolygon, int fromIndex = 0)

nPoints 의 복사본을 fromPolygon 에 있는 지정된 fromIndex (기본값은 0)의 점들을, 지정된 index 에서 시작하여 이 다각형으로 복사합니다. 예를 들어:

QPolygon polygon1;
polygon1.putPoints(0, 3, 1,2, 0,0, 5,6);
// polygon1 is now the three-point polygon(1,2, 0,0, 5,6);

QPolygon polygon2;
polygon2.putPoints(0, 3, 4,4, 5,5, 6,6);
// polygon2 is now (4,4, 5,5, 6,6);

polygon1.putPoints(2, 3, polygon2);
// polygon1 is now the five-point polygon(1,2, 0,0, 4,4, 5,5, 6,6);

이 함수는 오버로드된 함수입니다.

void QPolygon::setPoint(int index, int x, int y)

지정된 index 에 있는 점을 (x, y)로 지정된 점으로 설정합니다.

point(), putPoints() 및 setPoints()도 참조하십시오 .

void QPolygon::setPoint(int index, const QPoint &point)

지정된 좌표 ( index )에 있는 점을 지정된 좌표 ( point)로 설정합니다.

이 함수는 오버로드된 함수입니다.

void QPolygon::setPoints(int nPoints, const int *points)

다각형의 크기를 nPoints 로 조정하고, 주어진 points 를 그 안에 채웁니다.

다음 예제 코드는 (10, 20)과 (30, 40)이라는 두 점으로 구성된 다각형을 생성합니다:

static const int points[] = { 10, 20, 30, 40 };
QPolygon polygon;
polygon.setPoints(2, points);

setPoint() 및 putPoints()도 참조하십시오 .

void QPolygon::setPoints(int nPoints, int firstx, int firsty, ...)

다각형의 크기를 nPoints 로 조정하고, 변수 인자 목록에 지정된 점들로 채웁니다. 점들은 정수 시퀀스로 주어지며, firstx, firsty 순으로 이어집니다.

다음 예제 코드는 (10, 20)과 (30, 40)이라는 두 점을 가진 다각형을 생성합니다:

QPolygon polygon;
polygon.setPoints(2, 10, 20, 30, 40);

이 함수는 오버로드된 함수입니다.

QPolygon QPolygon::subtracted(const QPolygon &r) const

이 다각형에서 r 를 뺀 다각형을 반환합니다.

다각형에 대한 집합 연산은 해당 다각형을 면적으로 취급합니다. 닫히지 않은 다각형은 암묵적으로 닫힌 것으로 간주됩니다.

[noexcept] void QPolygon::swap(QPolygon &other)

이 다각형을 other 와 교환합니다. 이 작업은 매우 빠르며 실패하는 일이 없습니다.

[since 6.4] QPolygonF QPolygon::toPolygonF() const

이 다각형을 부동 소수점 정밀도의 다각형으로 반환합니다.

이 함수는 Qt 6.4에서 도입되었습니다.

QPolygonF::toPolygon()도 참조하십시오 .

void QPolygon::translate(int dx, int dy)

다각형 내의 모든 점을 (dx, dy)만큼 변환합니다.

translated()도 참조하십시오 .

void QPolygon::translate(const QPoint &offset)

다각형 내의 모든 점을 주어진 변환 매트릭스 offset 만큼 변환합니다.

이 함수는 오버로드된 함수입니다.

translated()도 참조하십시오 .

QPolygon QPolygon::translated(int dx, int dy) const

(dx, dy)만큼 변환된 다각형의 복사본을 반환합니다.

translate()도 참조하십시오 .

QPolygon QPolygon::translated(const QPoint &offset) const

지정된 변환 offset 에 따라 변환된 다각형의 복사본을 반환합니다.

이 함수는 오버로드된 함수입니다.

translate()도 참조하십시오 .

QPolygon QPolygon::united(const QPolygon &r) const

이 다각형과 r 의 합집합인 다각형을 반환합니다.

다각형에 대한 집합 연산은 다각형을 면으로 취급하며, 암시적으로 다각형을 닫힌 형태로 만듭니다.

intersected() 및 subtracted()도 참조하십시오 .

QPolygon::operator QVariant() const

다각형을 다음과 같은 형식으로 반환합니다. QVariant

관련 비회원

QDataStream &operator<<(QDataStream &stream, const QPolygon &polygon)

지정된 ` polygon `를 지정된 ` stream`에 기록하고, 해당 스트림에 대한 참조를 반환합니다.

'Qt 데이터 유형 직렬화'항목도 참조하십시오 .

QDataStream &operator>>(QDataStream &stream, QPolygon &polygon)

지정된 ` stream `에서 다각형을 읽어 지정된 ` polygon`로 전송하고, 해당 스트림에 대한 참조를 반환합니다.

'Qt 데이터 유형 직렬화'항목도 참조하십시오 .

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.