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
QVariant operator QVariant() const
QDataStream &operator<<(QDataStream &stream, const QPolygon &polygon)
QDataStream &operator>>(QDataStream &stream, QPolygon &polygon)

詳細説明

QPolygon オブジェクトはQList<QPoint> です。QPolygon に点を追加する最も簡単な方法は、QList の streaming 演算子を使うことです:

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] QPolygon::QPolygon()

点を持たない多角形を構築します。

QList::isEmpty()も参照

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

指定されたpoints を含む多角形を構築する。

setPoints()も参照

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

与えられたrectangle から多角形を構築する。closed が偽の場合、多角形は矩形の4つの点を時計回りに並べたものだけを含みます。そうでない場合、多角形の5番目の点は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)の3点を持つ多角形を作成している:

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)

これはオーバーロードされた関数である。

fromPolygon の指定されたfromIndex (デフォルトでは 0) から、指定されたindex を始点として、nPoints の点をこのポリゴンにコピーします。例えば

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)の2点を持つ多角形を作成しています:

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 、というように、整数のシーケンスとして与えられます。

このコード例では、2つの点(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()も参照して ください。

QVariant QPolygon::operator QVariant() const

ポリゴンをQVariant

関連する非会員

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

与えられたpolygon を与えられたstream に書き込み、ストリームへの参照を返します。

Qt データ型のシリアライズも参照してください

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

与えられたstream から与えられたpolygon にポリゴンを読み込み、ストリームへの参照を返します。

Qt データ型のシリアライズも参照してください

© 2025 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.