<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)
quint32 qNextPowerOfTwo(qint32 value)
quint64 qNextPowerOfTwo(qint64 value)
quint64 qNextPowerOfTwo(quint64 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 或标准模板库中没有的基本数学运算的方便定义。

头文件还确保定义一些 POSIX 中指定但 C++ 标准中没有的常量(因此在某些平台上 <math.h> 中没有):

常量说明
M_E自然对数的基数,e = exp(1)
M_LOG2Ee 的二进制对数
M_LOG10Ee 的十进制对数
M_LN2二的自然对数
M_LN10十的自然对数
M_PI圆周长与直径之比 π
M_PI_2半 M_PI,π / 2
M_PI_4四分之一 M_PI,π / 4
M_1_PIM_PI 的倒数,1 / π
M_2_PIM_PI 的两倍倒数,2 / π
M_2_SQRTPI二除以π的平方根,2 / √π
M_SQRT22 的平方根,√2
M_SQRT1_2半的平方根,1 / √2

函数文档

template <typename T> auto qAcos(T v)

以弧度为单位返回v 的余弦值。余弦是余弦的逆运算。

另请参阅 qAtan()、qAsin() 和qCos()。

template <typename T> auto qAsin(T v)

以弧度为单位返回v 的弧正值。弧正弦是正弦的逆运算。

另请参阅 qSin()、qAtan() 和qAcos()。

template <typename T1, typename T2> auto qAtan2(T1 y, T2 x)

返回由坐标yx 指定的点的反正切值。此函数将返回该点的角度(参数)。

另请参见 qAtan() 和qHypot()。

template <typename T> auto qAtan(T v)

以弧度为单位返回v 的反正切值。反正切是正切的逆运算。

另请参阅 qTan()、qAcos() 和qAsin()。

template <typename T> int qCeil(T v)

返回值v 的上限。

上限是不小于v 的最小整数。例如,如果v 是 41.2,那么上限就是 42。

另请参阅 qFloor() 。

template <typename T> auto qCos(T v)

以弧度为单位返回角度v 的余弦值。

另请参阅 qSin() 和qTan()。

[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)

返回ev 的幂的指数函数。

另请参见 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 中引入。

另请参阅 qSqrt() 和qAtan2()。

[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] quint32 qNextPowerOfTwo(qint32 value)

这是一个重载函数。

该函数返回最接近的大于value 的 2 的幂次。对于负值,结果未定义。

[constexpr] quint64 qNextPowerOfTwo(qint64 value)

这是一个重载函数。

该函数返回最接近的大于value 的 2 的幂次。对于负值,结果未定义。

[constexpr] quint64 qNextPowerOfTwo(quint64 value)

该函数返回最接近的大于value 的 2 的幂次。对于 0,它返回 1;对于大于或等于 2^63 的值,结果未定义。

template <typename T1, typename T2> auto qPow(T1 x, T2 y)

返回x 的值乘以y 的幂。也就是说,x 是基数,y 是指数。

另请参阅 qSqrt() 。

[constexpr] double qRadiansToDegrees(double radians)

此函数将radians 的 double 转换为度。

示例:

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 中的 double 转换为度。

此函数在 Qt 6.0 中引入。

另请参阅 qDegreesToRadians()。

template <typename T> auto qSin(T v)

以弧度为单位返回角度v 的正弦值。

另请参阅 qCos() 和qTan()。

template <typename T> auto qSqrt(T v)

返回v 的平方根。如果v 是负数,函数将返回 NaN。

另请参阅 qPow() 和qHypot()。

template <typename T> auto qTan(T v)

以弧度为单位返回角度v 的正切值。

另请参阅 qSin() 和qCos()。

© 2025 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.