QLineF 类
QLineF 类提供了一个使用浮点精度表示的不变二维向量。更多...
头文件 | #include <QLineF> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake | QT += core |
- 所有成员的列表,包括继承的成员
- 已弃用的成员
- QLineF 是 绘画类 的一部分。
公共类型
枚举 | 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) | |
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 |
bool | operator!=(const QLineF &line) const |
bool | operator==(const QLineF &line) const |
静态公共成员
QLineF | fromPolar(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()函数遍历线。
约束条件
成员类型文档
枚举 QLineF::IntersectionType
描述两条线之间的交点。
QLineF::UnboundedIntersection | QLineF::BoundedIntersection |
常量 | 值 | 描述 |
---|---|---|
QLineF::NoIntersection | 0 | 表示两条线不相交;即它们是平行的。 |
QLineF::UnboundedIntersection | 2 | 两条线相交,但不在它们长度定义的范围内。如果两条线不平行,那么 intersect()也会返回此值。 |
QLineF::BoundedIntersection | 1 | 两条线在每个线段的起点和终点内相交。 |
另请参阅intersects。
成员函数文档
[常量表达式]
QLineF::QLineF()
构造一个空格。
[constexpr]
QLineF::QLineF(const QPointF &p1, const QPointF &p2)
构造一个表示点 p1 和 p2 之间直线的 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
返回线的起点。
[constexpr]
QPointF QLineF::p2() const
返回线的终点。
[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
返回线的向量的水平分量。
[constexpr]
qreal QLineF::dy() const
返回线的向量的垂直分量。
[static]
QLineF QLineF::fromPolar(qreal length, qreal angle)
返回具有给定length和angle的QLineF。
线的第一个点将位于原点。
角度的正值表示逆时针方向,负值表示顺时针方向。零度为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
返回线段的长度。
[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(度数)。这将会改变线段的第二个点的位置,使得线段具有给定角度。
角度的正值表示逆时针方向,负值表示顺时针方向。零度为3点钟位置。
另请参阅 angle().
void QLineF::setLength(qreal length)
将线段的长度设置为给定的有限length。如果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().
[模板常量表达式]
QLine QLineF::toLine() const
返回此线的整数副本。
注意,返回线的起始点和终点已四舍五入到最近的整数。
另请参阅 QLineF() 和 QLine::toLineF()。
void QLineF::translate(const QPointF &offset)
通过给定的 offset 平移此线。
void QLineF::translate(qreal dx, qreal dy)
这是一个重载函数。
通过 dx 和 dy 指定的距离平移此线。
[模板常量表达式]
QLineF QLineF::translated(const QPointF &offset) const
返回给定 offset 平移后的此线。
[模板常量表达式]
QLineF QLineF::translated(qreal dx, qreal dy) const
这是一个重载函数。
返回 dx 和 dy 指定距离平移后的此线。
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的商标。商标。所有其他商标属各自所有者所有。