QLineF 类

QLineF 类提供了一个使用浮点精度表示的不变二维向量。更多...

头文件 #include <QLineF>
CMakefind_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmakeQT += core

公共类型

枚举IntersectionType { NoIntersection, UnboundedIntersection, BoundedIntersection }

公共函数

QLineF()
QLineF(const QPointF &p1, const QPointF &p2)
QLineF(qreal x1, qreal y1, qreal x2, qreal y2)
QLineF(const QLine &line)
QPointFp1() const
QPointFp2() const
qrealx1() const
qrealx2() const
qrealy1() const
qrealy2() const
qrealangle() const
qrealangleTo(const QLineF &line) const
QPointFcenter() const
qrealdx() const
qrealdy() const
QLineF::IntersectionTypeintersects(const QLineF &line, QPointF *intersectionPoint = nullptr) const
boolisNull() const
qreallength() const
QLineFnormalVector() const
QPointFpointAt(qreal t) const
voidsetP1(const QPointF &p1)
voidsetP2(const QPointF &p2)
voidsetAngle(qreal angle)
voidsetLength(qreal length)
voidsetLine(qreal x1, qreal y1, qreal x2, qreal y2)
voidsetPoints(const QPointF &p1, const QPointF &p2)
QLinetoLine() const
voidtranslate(const QPointF &offset)
voidtranslate(qreal dx, qreal dy)
QLineFtranslated(const QPointF &offset) const
QLineFtranslated(qreal dx, qreal dy) const
QLineFunitVector() const
booloperator!=(const QLineF &line) const
booloperator==(const QLineF &line) const

静态公共成员

QLineFfromPolar(qreal length, qreal angle)
QDataStream &operator<<(QDataStream &stream, const QLineF &line)
QDataStream &operator>>(QDataStream &stream, QLineF &line)

详细描述

A QLineF描述二维表面上的一条有限长线(或线段)。QLineF使用浮点精度定义线的起点和终点。使用toLine()函数获取该线的基于整数的副本。

可以使用p1(), x1(), y1(), p2(), x2(), 和 y2()函数检索线的起点和终点的位置。函数dx() 和 dy()分别返回线的水平和垂直分量。

可以使用length()函数检索线的长度,并使用setLength()函数更改它。类似地,angle() 和 setAngle()分别用于检索和更改线的角度。使用isNull()函数确定QLineF表示有效线还是null线。

函数intersects()确定此线与给定线的IntersectionType,而函数angleTo()返回两线之间的角度。此外,函数unitVector()返回一条具有与该线相同起点但长度仅为1的线,而函数normalVector()返回一条与此线垂直且起点和长度相同的线。

最后,可以使用translate()函数使用给定的偏移量平移线,并可以使用pointAt()函数遍历线。

约束条件

QLine限制为int类型的最大和最小值。对QLine的操作可能产生超出此范围值的结果,这将导致未定义行为。

另请参阅QLineQPolygonFQRectF

成员类型文档

枚举 QLineF::IntersectionType

描述两条线之间的交点。

QLineF::UnboundedIntersectionQLineF::BoundedIntersection
常量描述
QLineF::NoIntersection0表示两条线不相交;即它们是平行的。
QLineF::UnboundedIntersection2两条线相交,但不在它们长度定义的范围内。如果两条线不平行,那么 intersect()也会返回此值。
QLineF::BoundedIntersection1两条线在每个线段的起点和终点内相交。

另请参阅intersects

成员函数文档

[常量表达式] QLineF::QLineF()

构造一个空格。

[constexpr] QLineF::QLineF(const QPointF &p1, const QPointF &p2)

构造一个表示点 p1p2 之间直线的 QLineF 对象。

[constexpr] QLineF::QLineF(qreal x1, qreal y1, qreal x2, qreal y2)

构造一个表示点 (x1, y1) 和 (x2, y2) 之间直线的 QLineF 对象。

[constexpr] QLineF::QLineF(const QLine &line)

从给定的基于整数的 line 构造 QLineF 对象。

另请参阅toLine() 和 QLine::toLineF

[constexpr] QPointF QLineF::p1() const

返回线的起点。

另请参阅setP1x1y1p2

[constexpr] QPointF QLineF::p2() const

返回线的终点。

另请参阅setP2x2y2p1

[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的角度(以度为单位),考虑了线的方向。如果线在其范围内不相交,则用作原点的为延长线的交点(参见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)

返回具有给定lengthangleQLineF

线的第一个点将位于原点。

角度的正值表示逆时针方向,负值表示顺时针方向。零度为3点钟位置。

QLineF::IntersectionType QLineF::intersects(const QLineF &line, QPointF *intersectionPoint = nullptr) const

返回一个值,表示此线是否与给定的line相交。

实际的交点被提取到intersectionPoint(如果指针有效)。如果线是平行的,则交点未定义。

[constexpr] bool QLineF::isNull() const

如果线没有不同的起点和终点,则返回true;否则返回false。如果qFuzzyCompare()能在至少一个坐标中区分起点和终点,则将这些点视为不同的点。

注意:由于使用了模糊比较,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时返回线段的终点。

另请参阅 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(度数)。这将会改变线段的第二个点的位置,使得线段具有给定角度。

角度的正值表示逆时针方向,负值表示顺时针方向。零度为3点钟位置。

另请参阅 angle().

void QLineF::setLength(qreal length)

将线段的长度设置为给定的有限length。如果length()先前为零,则不会进行缩放。

另请参阅 length() 和 unitVector().

void QLineF::setLine(qreal x1, qreal y1, qreal x2, qreal y2)

将此线段设置为以x1y1为起点,以x2y2为终点。

另请参阅 setP1()、setP2()、p1p2().

void QLineF::setPoints(const QPointF &p1, const QPointF &p2)

将此线段的起点设置为p1并将终点设置为p2

另请参阅 setP1()、setP2()、p1p2().

[模板常量表达式] QLine QLineF::toLine() const

返回此线的整数副本。

注意,返回线的起始点和终点已四舍五入到最近的整数。

另请参阅 QLineF() 和 QLine::toLineF()。

void QLineF::translate(const QPointF &offset)

通过给定的 offset 平移此线。

void QLineF::translate(qreal dx, qreal dy)

这是一个重载函数。

通过 dxdy 指定的距离平移此线。

[模板常量表达式] QLineF QLineF::translated(const QPointF &offset) const

返回给定 offset 平移后的此线。

[模板常量表达式] QLineF QLineF::translated(qreal dx, qreal dy) const

这是一个重载函数。

返回 dxdy 指定距离平移后的此线。

QLineF QLineF::unitVector() const

返回此线的单位向量,即从与 this 线相同的点开始长为 1.0 的线,前提是该线非空。

另请参阅 normalVector() 和 setLength()。

[模板常量表达式] bool QLineF::operator!=(const QLineF &line) const

如果给定的 line 与此线不同,则返回 true

如果线的起始点或终点不同,或者点的内部顺序不同,则线与另一条线不同。

[模板常量表达式] bool QLineF::operator==(const QLineF &line) const

如果给定的 line 与此线相同,则返回 true

如果线的起始点和终点相同,并且点的内部顺序相同,则线与另一条线相同。

相关非成员函数

QDataStream &operator<<(QDataStream &stream, const QLineF &line)

将给定的 line 写入给定的 stream 并返回流引用。

另请参阅 序列化 Qt 数据类型

QDataStream &operator>>(QDataStream &stream, QLineF &line)

从给定的中读取一行到给定的,并返回对流的引用。

另请参阅 序列化 Qt 数据类型

© 2024 The Qt Company Ltd. 本文件中包含的文档贡献为各自所有者的版权。本文件提供的文档依据由自由软件基金会发布的GNU自由文档许可协议版本1.3的条款进行许可。Qt及其相关商标是芬兰和/或其他国家的The Qt Company Ltd的商标。商标。所有其他商标属各自所有者所有。