<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_LOG2E | eの底2の対数 |
M_LOG10E | eの10進対数 |
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倍、2 / π |
M_2_SQRTPI | 2をπの平方根で割ったもの、2 / √π |
M_SQRT2 | 2の平方根、√2 |
M_SQRT1_2 | 半分の平方根、1 / √2 |
関数ドキュメント
template <typename T> auto qAcos(T v)
arccosine関数は、v のアークコサインをラジアン単位の角度で返します。アークコサインはコサインの逆演算である。
qAtan()、qAsin() およびqCos()も参照 。
template <typename T> auto qAsin(T v)
arcsine関数は、v のアークサインをラジアン単位の角度で返します。アークサインはサイン(正弦)の逆演算である。
template <typename T1, typename T2> auto qAtan2(T1 y, T2 x)
座標y とx で指定された点のアークタンジェントを返す。この関数はその点の角度(引数)を返す。
template <typename T> auto qAtan(T v)
arctangent関数は、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 をラジアンに変換します。
この関数は Qt 6.0 で導入されました。
qRadiansToDegrees()も参照してください 。
template <typename T> auto qExp(T v)
v のべき乗に対するe
の指数関数を返す。
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()でサポートされている2引数形式と3引数形式と同様であるが、数値パラメータを渡したい数だけ渡すことができる。first 、rest のそれぞれを座標として使用し、それぞれを2乗するのと同等の計算を行い、合計して平方根を返します。アンダーフローとオーバーフローは可能な限り回避されます。
この関数は Qt 6.1 で導入されました。
qSqrt()も参照してください 。
[since 6.1]
template <typename Tx, typename Ty> auto qHypot(Tx x, Ty y)
これはオーバーロードされた関数である。
原点 (0, 0) からの点 (x,y) の距離を返す。
これはqSqrt(x * x + y * y)であり、最適化されている。特に、アンダーフローとオーバーフローを避けることができる。
std::hypot()と同じ浮動小数点型を返す。どちらかのパラメータが無限大であれば結果も無限大となり、そうでなければどちらかがNaNであれば結果も無限大となる。
この関数は Qt 6.1 で導入されました。
[since 6.1]
template <typename Tx, typename Ty, typename Tz> auto qHypot(Tx x, Ty y, Tz z)
これはオーバーロードされた関数です。
原点 (0, 0, 0) からの点 (x, y, z) の距離を返します。
これはqSqrt(x * x + y * y + z * z) であり、サポートされている場合は最適化される。特に、アンダーフローとオーバーフローを避けることができる。
std::hypot()と同じ浮動小数点型を返す。パラメータが無限大の場合は結果も無限大となり、そうでない場合は 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)
y のべき乗に引き上げたx の値を返す。 つまり、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 角度の正接をラジアン単位で返します。
© 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.