QPolygon Class

QPolygon クラスは、整数精度の点のリストを提供します。詳細...

Header: #include <QPolygon>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Inherits: 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 が false の場合、多角形は、時計回りに並べられた長方形の 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, ...)

与えられたindex のポリゴンに、変数引数リストからnPoints の点をコピーします。

点は、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 データ型のシリアライズ」も参照してください

©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。