<QtMath> - Generic Math Functions
<QtMath> 头文件提供了各种数学函数。更多内容...
| Header: | #include <QtMath> |
函数
| auto | qAcos(T v) |
| auto | qAsin(T v) |
| auto | qAtan2(T1 y, T2 x) |
| auto | qAtan(T v) |
| int | qCeil(T v) |
| auto | qCos(T v) |
| double | qDegreesToRadians(double degrees) |
| float | qDegreesToRadians(float degrees) |
(since 6.0) long double | qDegreesToRadians(long double degrees) |
| auto | qExp(T v) |
| auto | qFabs(T v) |
| int | qFloor(T v) |
(since 6.1) auto | qHypot(F first, Fs... rest) |
(since 6.1) auto | qHypot(Tx x, Ty y) |
(since 6.1) auto | qHypot(Tx x, Ty y, Tz z) |
| auto | qLn(T v) |
| quint32 | qNextPowerOfTwo(quint32 value) |
| quint64 | qNextPowerOfTwo(quint64 value) |
| quint32 | qNextPowerOfTwo(qint32 value) |
| quint64 | qNextPowerOfTwo(qint64 value) |
| auto | qPow(T1 x, T2 y) |
| double | qRadiansToDegrees(double radians) |
| float | qRadiansToDegrees(float radians) |
(since 6.0) long double | qRadiansToDegrees(long double radians) |
| auto | qSin(T v) |
| auto | qSqrt(T v) |
| auto | qTan(T v) |
详细说明
这些函数部分是针对 C 语言或标准模板库(STL)中未提供的基本数学运算所定义的便捷函数。
该头文件还确保定义了 POSIX 中指定但 C++ 标准中未包含(因此在某些平台上的 <math.h> 中缺失)的一些常量:
| 常量 | 描述 |
|---|---|
M_E | 自然对数的底,e = exp(1) |
M_LOG2E | e 的二进制对数 |
M_LOG10E | e 的十进制对数 |
M_LN2 | 2 的自然对数 |
M_LN10 | 10的自然对数 |
M_PI | 圆周长与直径之比,π |
M_PI_2 | M_PI的一半,π / 2 |
M_PI_4 | M_PI的四分之一,π / 4 |
M_1_PI | M_PI的倒数,1 / π |
M_2_PI | M_PI的倒数的两倍,即 2 / π |
M_2_SQRTPI | 2 除以 π 的平方根,即 2 / √π |
M_SQRT2 | 2的平方根,√2 |
M_SQRT1_2 | 二的一半的平方根,1 / √2 |
函数文档
template <typename T> auto qAcos(T v)
返回v 的反正弦值,单位为弧度。反正弦是余弦的逆运算。
template <typename T> auto qAsin(T v)
返回v 的反正弦值,单位为弧度。反正弦是正弦的逆运算。
另请参阅 qSin()、qAtan() 以及qAcos()。
template <typename T1, typename T2> auto qAtan2(T1 y, T2 x)
返回由坐标y 和x 指定的点的反正切值。该函数将返回该点的角度(参数)。
template <typename T> auto qAtan(T v)
返回v 的反正切值,单位为弧度。反正切是正切的逆运算。
template <typename T> int qCeil(T v)
返回值v 的取整上界。
取整值是指不小于v 的最小整数。例如,如果v 为 41.2,则取整值为 42。
另请参阅 qFloor()。
template <typename T> auto qCos(T v)
返回角度v (以弧度为单位)的余弦值。
[constexpr] double qDegreesToRadians(double degrees)
该函数将双精度格拉夫斯基角(degrees )转换为弧度。
示例:
double degrees = 180.0;
double radians = qDegreesToRadians(degrees);另请参阅 qRadiansToDegrees()。
[constexpr] float qDegreesToRadians(float degrees)
该函数将浮点数形式的degrees 转换为弧度。
示例:
float degrees = 180.0f;
float radians = qDegreesToRadians(degrees);另请参阅 qRadiansToDegrees()。
[constexpr, since 6.0] long double qDegreesToRadians(long double degrees)
该函数将degrees (以double类型表示)转换为弧度。
该函数自 Qt 6.0 起引入。
另请参阅 qRadiansToDegrees()。
template <typename T> auto qExp(T v)
返回e 的指数函数,其指数为v 。
另请参阅 qLn()。
template <typename T> auto qFabs(T v)
返回v 的绝对值。
template <typename T> int qFloor(T v)
返回值v 的下取整。
取整后的小数部分是指不大于v 的最大整数。例如,如果v 为 41.2,则取整后的小数部分为 41。
另请参阅 qCeil()。
[since 6.1] template <typename F, typename... Fs> auto qHypot(F first, Fs... rest)
返回任意维数下到原点的距离
这与 std::hypot() 支持的两个参数和三个参数形式类似,但允许传递任意数量的数值参数。 该函数将first 以及rest 中的每个元素作为坐标,执行的计算等同于将每个坐标平方、求和并返回平方根,只不过在计算过程中会尽可能避免下溢和溢出。
该函数在 Qt 6.1 中引入。
另请参阅 qSqrt()。
[since 6.1] template <typename Tx, typename Ty> auto qHypot(Tx x, Ty y)
返回点 (x,y) 到原点 (0, 0) 的距离。
这是对qSqrt(x * x + y * y) 的优化版本。特别是,可以避免下溢和上溢。
支持任意数值类型的组合,返回与 std::hypot() 相同的浮点类型。如果任一参数为无穷大,则结果也为无穷大;否则,如果任一参数为 NaN,则结果也为 NaN。
这是一个重载函数。
该函数在 Qt 6.1 中引入。
[since 6.1] template <
typename Tx,
typename Ty,
typename Tz
>
auto qHypot(Tx x, Ty y, Tz z)
返回点 (x, y, z) 到原点 (0, 0, 0) 的距离。
该函数实现为qSqrt (即 x * x + y * y + z * z),并在支持的情况下进行了优化。特别是,可以避免下溢和上溢。
支持任意数值类型的组合,返回与 std::hypot() 相同的浮点类型。如果任何参数为无穷大,则结果也为无穷大;否则,如果任何参数为 NaN,则结果也为 NaN。
这是一个重载函数。
该函数在 Qt 6.1 中引入。
另请参阅 qSqrt()。
template <typename T> auto qLn(T v)
返回v 的自然对数。自然对数以e为底。
另请参阅 qExp()。
[constexpr] quint32 qNextPowerOfTwo(quint32 value)
该函数返回大于value 的最近的2的幂。对于0,它返回1;对于大于或等于2^31的值,结果未定义。
[constexpr] quint64 qNextPowerOfTwo(quint64 value)
该函数返回大于value 的最近的2的幂。对于0,它返回1;对于大于或等于2^63的值,结果未定义。
[constexpr] quint32 qNextPowerOfTwo(qint32 value)
该函数返回大于value 的最近的2的幂。对于负值,结果未定义。
这是一个重载函数。
[constexpr] quint64 qNextPowerOfTwo(qint64 value)
该函数返回大于value 的最近的2的幂。对于负数,结果未定义。
这是一个重载函数。
template <typename T1, typename T2> auto qPow(T1 x, T2 y)
返回x 的y 次幂。也就是说,x 是底数,y 是指数。
另请参阅 qSqrt()。
[constexpr] double qRadiansToDegrees(double radians)
该函数将双精度格拉德角(radians )转换为度。
示例:
double radians = M_PI;
double degrees = qRadiansToDegrees(radians);另请参阅 qDegreesToRadians()。
[constexpr] float qRadiansToDegrees(float radians)
该函数将浮点数形式的radians 转换为度。
示例:
float radians = float(M_PI);
float degrees = qRadiansToDegrees(radians);另请参阅 qDegreesToRadians()。
[constexpr, since 6.0] long double qRadiansToDegrees(long double radians)
该函数将以双精度形式表示的radians 转换为度。
该函数在 Qt 6.0 中引入。
另请参阅 qDegreesToRadians()。
template <typename T> auto qSin(T v)
返回角度v (以弧度为单位)的正弦值。
template <typename T> auto qSqrt(T v)
返回v 的平方根。如果v 为负数,则该函数返回NaN。
template <typename T> auto qTan(T v)
返回角度v (以弧度为单位)的正切值。
© 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.