QLineF Class
QLineF クラスは、浮動小数点精度を用いた 2 次元ベクトルを提供します。詳細...
| ヘッダー: | #include <QLineF> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
- 継承されたメンバーを含む、すべてのメンバーの一覧
- 非推奨のメンバ
- QLineFはペイントクラスの一部です。
QLineF の比較
| カテゴリ | 比較可能な型 |
|---|---|
| 等価性 | QLineF |
| 等価性 | QLine. |
パブリック型
| enum | IntersectionType { NoIntersection, UnboundedIntersection, BoundedIntersection } |
パブリック関数
| QLineF() | |
| QLineF(const QLine &line) | |
| QLineF(const QPointF &p1, const QPointF &p2) | |
| QLineF(qreal x1, qreal y1, qreal x2, qreal y2) | |
| QPointF | p1() const |
| QPointF | p2() const |
| qreal | x1() const |
| qreal | x2() const |
| qreal | y1() const |
| qreal | y2() const |
| qreal | angle() const |
| qreal | angleTo(const QLineF &line) const |
| QPointF | center() const |
| qreal | dx() const |
| qreal | dy() const |
| QLineF::IntersectionType | intersects(const QLineF &line, QPointF *intersectionPoint = nullptr) const |
| bool | isNull() const |
| qreal | length() const |
| QLineF | normalVector() const |
| QPointF | pointAt(qreal t) const |
| void | setP1(const QPointF &p1) |
| void | setP2(const QPointF &p2) |
| void | setAngle(qreal angle) |
| void | setLength(qreal length) |
| void | setLine(qreal x1, qreal y1, qreal x2, qreal y2) |
| void | setPoints(const QPointF &p1, const QPointF &p2) |
| QLine | toLine() const |
| void | translate(const QPointF &offset) |
| void | translate(qreal dx, qreal dy) |
| QLineF | translated(const QPointF &offset) const |
| QLineF | translated(qreal dx, qreal dy) const |
| QLineF | unitVector() const |
静的パブリックメンバー
| QLineF | fromPolar(qreal length, qreal angle) |
関連する非メンバー
(since 6.8) bool | qFuzzyCompare(const QLineF &lhs, const QLineF &rhs) |
(since 6.8) bool | qFuzzyIsNull(const QLineF &line) |
| bool | operator!=(const QLineF &lhs, const QLineF &rhs) |
| QDataStream & | operator<<(QDataStream &stream, const QLineF &line) |
| bool | operator==(const QLineF &lhs, const QLineF &rhs) |
| QDataStream & | operator>>(QDataStream &stream, QLineF &line) |
詳細な説明
QLineF は、2 次元平面上の有限長の直線(または線分)を表します。QLineF は、座標に浮動小数点精度を用いて直線の始点と終点を定義します。この直線の整数ベースのコピーを取得するには、toLine() 関数を使用します。
![]() | ![]() |
線の始点と終点の位置は、p1()、x1()、y1()、p2()、x2()、およびy2()関数を使用して取得できます。dx()関数とdy()関数は、それぞれ線の水平成分と垂直成分を返します。
線の長さは、length()関数を使用して取得でき、setLength()関数を使用して変更できます。同様に、angle()とsetAngle()は、それぞれ線の角度の取得と変更に使用されます。QLineFが有効な線であるか、あるいはnull線であるかを判定するには、isNull()関数を使用します。
intersects() 関数は、この線と指定された線との間のIntersectionType を算出します。一方、angleTo() 関数は、2つの線間の角度を返します。 さらに、unitVector() 関数は、この線と同じ始点を持つが、長さが 1 だけの線を返し、normalVector() 関数は、この線に垂直で、同じ始点と長さを持つ線を返します。
最後に、translate() 関数を使用すると、線を指定されたオフセット分だけ平行移動させることができ、pointAt() 関数を使用すると、線を走破することができます。
制約
QLine は、int 型の最小値と最大値に制限されます。QLine に対して、この範囲外の値となる可能性のある操作を行うと、未定義の挙動を引き起こします。
関連項目: QLine 、QPolygonF 、およびQRectF 。
メンバ型のドキュメント
enum QLineF::IntersectionType
2本の直線の交点を表します。
![]() | ![]() |
| QLineF::UnboundedIntersection | QLineF::BoundedIntersection |
| 定数 | 値 | 説明 |
|---|---|---|
QLineF::NoIntersection | 0 | 線分が交差しないことを示します。つまり、それらは平行です。 |
QLineF::UnboundedIntersection | 2 | 2 本の直線は交差しているが、その長さによって定義される範囲内では交差していない。これは、直線が平行でない場合に該当する。また、交点が一方の直線の始点と終点の間にある場合にも、intersect() はこの値を返す。 |
QLineF::BoundedIntersection | 1 | 2 本の直線が、それぞれの始点と終点の間で交わります。 |
intersects()も参照してください 。
メンバ関数のドキュメント
[constexpr] QLineF::QLineF()
ヌルラインを作成します。
[constexpr] QLineF::QLineF(const QLine &line)
指定された整数ベースのline からQLineFオブジェクトを構築します。
toLine() およびQLine::toLineF()も参照してください 。
[constexpr] QLineF::QLineF(const QPointF &p1, const QPointF &p2)
p1 とp2 の間を結ぶ直線を表す線オブジェクトを生成します。
[constexpr] QLineF::QLineF(qreal x1, qreal y1, qreal x2, qreal y2)
(x1,y1) と (x2,y2) を結ぶ直線を表す線オブジェクトを作成します。
[constexpr] QPointF QLineF::p1() const
その行の開始点を返します。
setP1()、x1()、y1()、およびp2()も参照してください 。
[constexpr] QPointF QLineF::p2() const
その行の終点を返します。
setP2()、x2()、y2()、およびp1()も参照してください 。
[constexpr] qreal QLineF::x1() const
線の始点のx座標を返します。
p1()も参照してください 。
[constexpr] qreal QLineF::x2() const
線の終点のx座標を返します。
p2()も参照してください 。
[constexpr] qreal QLineF::y1() const
線の始点の y 座標を返します。
p1()も参照してください 。
[constexpr] qreal QLineF::y2() const
線の終点の y 座標を返します。
p2()も参照してください 。
qreal QLineF::angle() const
直線の角度を度単位で返します。
戻り値は、0.0 から 360.0 未満(360.0 を除く)の範囲になります。角度は、原点の右側にある x 軸上の点から反時計回りに測定されます(x > 0)。
setAngle()も参照してください 。
qreal QLineF::angleTo(const QLineF &line) const
この線と指定されたline との間の角度(度単位)を、両線の向きを考慮して返します。もし両線が範囲内でintersect していない場合、延長された線の交点が原点として扱われます(QLineF::UnboundedIntersection を参照)。
返される値は、指定されたline と同じ角度になるように、この線に反時計回りに加える必要がある角度(度単位)を表します。
intersects()も参照してください 。
[constexpr] QPointF QLineF::center() const
この線の中心点を返します。これは、0.5 *p1() + 0.5 *p2() と同等です。
[constexpr] qreal QLineF::dx() const
線のベクトルの水平成分を返します。
[constexpr] qreal QLineF::dy() const
線のベクトルの垂直成分を返します。
[static] QLineF QLineF::fromPolar(qreal length, qreal angle)
指定されたlength およびangle を持つQLineF を返します。
直線の最初の点は原点に位置します。
角度の正の値は反時計回り、負の値は時計回りを意味します。0度は3時の位置に相当します。
QLineF::IntersectionType QLineF::intersects(const QLineF &line, QPointF *intersectionPoint = nullptr) const
この直線が、指定されたline と交差するかどうかを示す値を返します。
実際の交点は、intersectionPoint に抽出されます(ポインタが有効な場合)。線分が平行である場合、交点は未定義となります。
[constexpr] bool QLineF::isNull() const
その直線に異なる始点と終点がない場合は `true ` を返し、それ以外の場合は `false` を返します。始点と終点は、qFuzzyCompare() が少なくとも 1 つの座標においてそれらを区別できる場合に、異なるものとみなされます。
注: ファジー比較が使用されているため 、length() の値が 0 でない線分であっても、isNull() はtrue を返す場合があります。
qFuzzyCompare() およびlength()も参照してください 。
qreal QLineF::length() const
行の長さを返します。
setLength() およびisNull()も参照してください 。
[constexpr] QLineF QLineF::normalVector() const
この線に垂直で、始点と長さが同じな線を返します。

unitVector()も参照してください 。
[constexpr] QPointF QLineF::pointAt(qreal t) const
有限パラメータt で指定された位置にある点を返します。この関数は、t = 0 の場合は直線の始点を、t = 1 の場合は終点を返します。
void QLineF::setP1(const QPointF &p1)
この線の始点を `p1` に設定します。
void QLineF::setP2(const QPointF &p2)
この線の終点をp2 に設定します。
void QLineF::setAngle(qreal angle)
線の角度を指定されたangle (度単位)に設定します。これにより、線が指定された角度になるよう、線の2番目の点の位置が変更されます。
角度の値が正の場合は反時計回り、負の場合は時計回りを意味します。0度は3時の位置に相当します。
angle()も参照してください 。
void QLineF::setLength(qreal length)
線の長さを、指定された有限値length に設定します。QLineF は、線の終点(p2())を移動させて、線に新しい長さを与えます。ただし、length()が以前にゼロだった場合は、スケーリングは行われません。
length() およびunitVector()も参照してください 。
void QLineF::setLine(qreal x1, qreal y1, qreal x2, qreal y2)
x1 、y1 ではこの行を先頭に、x2 、y2 では末尾に設定します。
setP1()、setP2()、p1()、およびp2()も参照してください 。
void QLineF::setPoints(const QPointF &p1, const QPointF &p2)
この行の開始点をp1 、終了点をp2 に設定します。
setP1()、setP2()、p1()、およびp2()も参照してください 。
[constexpr] QLine QLineF::toLine() const
この行の整数ベースのコピーを返します。
なお、返される行の開始点と終了点は、最も近い整数に丸められます。
QLineF() およびQLine::toLineF()も参照してください 。
[constexpr] void QLineF::translate(const QPointF &offset)
指定されたoffset を用いて、この行を翻訳します。
[constexpr] void QLineF::translate(qreal dx, qreal dy)
この行を、dx およびdy で指定された距離だけ平行移動します。
これはオーバーロードされた関数です。
[constexpr] QLineF QLineF::translated(const QPointF &offset) const
指定されたoffset によって翻訳されたこの行を返します。
[constexpr] QLineF QLineF::translated(qreal dx, qreal dy) const
dx およびdy で指定された距離だけ翻訳されたこの行を返します。
これはオーバーロードされた関数です。
QLineF QLineF::unitVector() const
この直線の単位ベクトルを返します。つまり、この直線と同じ点から始まり、長さが 1.0 の直線の単位ベクトルです(ただし、直線が null でない場合に限ります)。
normalVector() およびsetLength()も参照してください 。
関連する非メンバー関数
[constexpr noexcept, since 6.8] bool qFuzzyCompare(const QLineF &lhs, const QLineF &rhs)
行lhs が行rhs とおおよそ等しい場合、true を返します。そうでない場合は、false を返します。
線分xml-ph-0001@deepl.internalと線分xml-ph-0002@deepl.internalの始点と終点がほぼ等しい場合、それらの線分はほぼ等しいとみなされます。
この関数は Qt 6.8 で導入されました。
[constexpr noexcept, since 6.8] bool qFuzzyIsNull(const QLineF &line)
line の開始点がその終了点とほぼ等しい場合は `true ` を返し、そうでない場合は `false` を返します。
この関数は Qt 6.8 で導入されました。
[constexpr noexcept] bool operator!=(const QLineF &lhs, const QLineF &rhs)
行 `lhs ` が行 `rhs` と異なる場合、true を返します。
2つの直線は、始点または終点が異なる場合、あるいは点の内部順序が異なる場合に、互いに異なるものとみなされます。
QDataStream &operator<<(QDataStream &stream, const QLineF &line)
指定されたline を指定されたstream に書き込み、そのストリームへの参照を返します。
「Qtデータ型のシリアライズ」も参照してください 。
[constexpr noexcept] bool operator==(const QLineF &lhs, const QLineF &rhs)
行 `lhs ` が行 `rhs` と同一である場合、true を返します。
2つのラインは、始点と終点が同一であり、かつ点の内部順序が同じである場合に、同一であるとみなされます。
QDataStream &operator>>(QDataStream &stream, QLineF &line)
指定されたstream から指定されたline へ1行を読み込み、そのストリームへの参照を返します。
「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.



