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() | |
| 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 のストリーミング演算子を使用することです。
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の場合、多角形には長方形の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) を持つ多角形を作成します:
以下のコードも同様の結果になりますが、ここでは 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)
指定されたfromIndex (デフォルトは0)の座標から、fromPolygon 内のnPoints の点を、指定された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) の 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()も参照してください 。
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.