このページでは

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
等価性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、p2、dx、dyのラベルが付いた直線x1、y1、x2、y2、dx、dy のラベルが付いた直線

線の始点と終点の位置は、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本の直線の交点を表します。

延長線を持つ2本の直線が交差する境界内で交差する2本の直線
QLineF::UnboundedIntersectionQLineF::BoundedIntersection
定数値説明
QLineF::NoIntersection0線分が交差しないことを示します。つまり、それらは平行です。
QLineF::UnboundedIntersection22 本の直線は交差しているが、その長さによって定義される範囲内では交差していない。これは、直線が平行でない場合に該当する。また、交点が一方の直線の始点と終点の間にある場合にも、intersect() はこの値を返す。
QLineF::BoundedIntersection12 本の直線が、それぞれの始点と終点の間で交わります。

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

線のベクトルの水平成分を返します。

dy() およびpointAt()も参照してください 。

[constexpr] qreal QLineF::dy() const

線のベクトルの垂直成分を返します。

dx() およびpointAt()も参照してください 。

[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

この線に垂直で、始点と長さが同じな線を返します。

同じ始点を持つ2つのベクトル(v_x, v_y)と(vy, -vx)を示した図。

unitVector()も参照してください 。

[constexpr] QPointF QLineF::pointAt(qreal t) const

有限パラメータt で指定された位置にある点を返します。この関数は、t = 0 の場合は直線の始点を、t = 1 の場合は終点を返します。

dx() およびdy()も参照してください 。

void QLineF::setP1(const QPointF &p1)

この線の始点を `p1` に設定します。

setP2() およびp1()も参照してください 。

void QLineF::setP2(const QPointF &p2)

この線の終点をp2 に設定します。

setP1() および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.