數學#
介紹#
C++ 標準函式庫透過 <cmath>提供基本的數學功能,VEXcode EXP 支援這些功能。這些函數可以執行常見的數學運算,例如三角函數、四捨五入、指數運算等等。
可以用它們來計算位置、角度、距離,或是進行角度和弧度之間的轉換。
以下是可用的數學函數、常數和實用程式清單:
常用數學函數-常用數學工具。
常數 – 預定義值,範圍從 <cmath> 。
三角學——計算角度和邊之間的關係。
sin– 弧度角的正弦值。cos– 弧度角的餘弦值。tan– 弧度角的正切值。atan– 弧度值的反正切值。atan2– 考慮象限,y/x 的弧度反正切值。asin– 弧度值的反正弦值。acos– 弧度值的反餘弦。
舍入與絕對值 – 調整精確度或方向。
指數與對數——冪、根和對數計算。
浮點運算-檢查或分解浮點數值。
常用數學函數#
abs#
傳回一個數的絕對值,去掉任何負號。
Available Functions1 — 傳回整數的絕對值。
int abs( int x );
Parameters2 — 傳回雙精確度浮點數的絕對值。
double abs( double x );
範圍 |
類型 |
描述 |
|---|---|---|
|
|
整數或雙精確度浮點數。 |
傳回輸入值的絕對值,類型與輸入值相同。
Examples// Display the absolute value of -10
Brain.Screen.print("%d", abs(-10));
// Output: 10
fmin#
傳回兩個值中較小的那個,值為雙精度浮點數。
Available Functionsdouble fmin( double value1, double value2 );
範圍 |
類型 |
描述 |
|---|---|---|
|
|
首先要比較的值。 |
|
|
第二個要比較的值。 |
傳回 double 表示兩個輸入值中較小的那個。
// Display the lower of two values
Brain.Screen.print("%f", fmin(7, 4));
// Output: 4.000000
fmax#
傳回兩個值中較大的那個,值為雙精度浮點數。
Available Functionsdouble fmax( double value1, double value2 );
範圍 |
類型 |
描述 |
|---|---|---|
|
|
首先要比較的值。 |
|
|
第二個要比較的值。 |
傳回 double 的雙精度浮點數,表示兩個輸入值中較大的一個。
// Display the higher of two values
Brain.Screen.print("%f", fmax(7, 4));
// Output: 7.000000
pow#
傳回一個雙精確度浮點數的冪。
Available Functionsdouble pow( double base, double exponent );
範圍 |
類型 |
描述 |
|---|---|---|
|
|
基數。 |
|
|
指數。 |
傳回一個 double 表示底數的指數次方。
// Display 2 to the power of 3
Brain.Screen.print("%f", pow(2, 3));
// Output: 8.000000
常量#
常量是預先定義好的數值,在專案過程中保持不變。它們可以直接用於計算,無需任何定義或賦值。
M_PI#
M_PI 給出了數學常數 π,即圓的周長與其直徑之比。
const double M_PI;
此常數沒有參數。
Return Values傳回數學常數 π,值為 double。
// Calculate the area of a circle with radius 5
double area = M_PI * 5 * 5;
Brain.Screen.print("%f", area);
// Output: 78.539816
M_E#
數學常數 e(歐拉數),自然對數的底。
Available Constantsconst double M_E;
此常數沒有參數。
Return Values傳回數學常數 e,值為 double。
// Calculate e raised to the power of 2
double result = pow(M_E, 2);
Brain.Screen.print("%f", result);
// Output: 7.389056
三角學#
sin#
計算弧度角的正弦值並傳回一個雙精度浮點數。
Available Functionsdouble sin( double x );
範圍 |
類型 |
描述 |
|---|---|---|
|
|
表示弧度角度的雙精度浮點數。 |
傳回一個 double ,表示角度的正弦值。
// Convert 30 degrees to radians
double radians = 30 * M_PI / 180.0;
// Display the sine of 30 degrees
Brain.Screen.print("%f", sin(radians));
// Output: 0.500000
cos#
計算弧度角的餘弦值並傳回一個雙精度浮點數。
Available Functionsdouble cos( double x );
範圍 |
類型 |
描述 |
|---|---|---|
|
|
表示弧度角度的雙精度浮點數。 |
傳回一個 double 的雙精度浮點數,表示角度的餘弦值。
// Convert 60 degrees to radians
double radians = 60 * M_PI / 180.0;
// Display the cosine of 60 degrees
Brain.Screen.print("%f", cos(radians));
// Output: 0.500000
tan#
計算弧度角的正切值並傳回一個雙精度浮點數。
Available Functionsdouble tan( double x );
範圍 |
類型 |
描述 |
|---|---|---|
|
|
表示弧度角度的雙精度浮點數。 |
傳回一個 double ,表示角度的正切值。
// Convert 45 degrees to radians
double radians = 45 * M_PI / 180.0;
// Compute tangent of 45 degrees
Brain.Screen.print("%f", tan(radians));
// Output: 1.000000
atan#
計算一個數的反正切值(反正切值),並傳回一個表示弧度角度的雙精度浮點數。
Available Functionsdouble atan( double x );
範圍 |
類型 |
描述 |
|---|---|---|
|
|
雙精度值。 |
傳回一個 double ,表示弧度製的反正切值。
// Calculate the arc tangent of 1 in degrees
double degrees = atan(1.0) * 180.0 / M_PI;
Brain.Screen.print("%f", degrees);
// Output: 45.000000
atan2#
計算 y/x 的反正切函數的主值,並傳回一個表示弧度角度的雙精度浮點數。
Available Functionsdouble atan2( double y, double x );
範圍 |
類型 |
描述 |
|---|---|---|
|
|
表示 y 座標的雙精確度浮點數。 |
|
|
表示 x 座標的雙精確度浮點數。 |
傳回一個 double ,表示 y/x 的弧度反正切值。
// Calculate the inverse tangent of 1/1 in degrees
double degrees = atan2(1.0, 1.0) * 180.0 / M_PI;
Brain.Screen.print("%f", degrees);
// Output: 45.000000
asin#
計算一個數的反正弦(反正弦)值,並傳回一個表示弧度角度的雙精度浮點數。
Available Functionsdouble asin( double x );
範圍 |
類型 |
描述 |
|---|---|---|
|
|
介於 -1 和 1 之間的雙精度浮點數。 |
傳回一個 double ,表示弧度製的反正弦值。
// Calculate the arc sine of 0.5 in degrees
double degrees = asin(0.5) * 180.0 / M_PI;
Brain.Screen.print("%f", degrees);
// Output: 30.000000
acos#
計算一個數的反餘弦值(反餘弦值),並傳回一個表示弧度角度的雙精度浮點數。
Available Functionsdouble acos( double x );
範圍 |
類型 |
描述 |
|---|---|---|
|
|
介於 -1 和 1 之間的雙精度浮點數。 |
傳回一個 double ,表示弧度製的反餘弦值。
// Calculate the arc cosine of 0.5 in degrees
double degrees = acos(0.5) * 180.0 / M_PI;
Brain.Screen.print("%f", degrees);
// Output: 60.000000
四捨五入與絕對值#
ceil#
傳回一個向上取整的雙精確度浮點數。
Available Functionsdouble ceil( double x );
範圍 |
類型 |
描述 |
|---|---|---|
|
|
一個需要四捨五入的雙數。 |
傳回 double 雙精確度浮點數,表示大於或等於 x 的最小整數。
// Round up 9.7
Brain.Screen.print("%f", ceil(9.7));
// Output: 10.000000
floor#
傳迴向下取整的雙精確度浮點數。
Available Functionsdouble floor( double x );
範圍 |
類型 |
描述 |
|---|---|---|
|
|
雙數向下取整。 |
傳回 double 之間的雙精確度浮點數,表示小於或等於 x 的最大整數。
// Round down 9.7
Brain.Screen.print("%f", floor(9.7));
// Output: 9.000000
trunc#
傳回一個雙精度浮點數,小數部分設為零。
Available Functionsdouble trunc( double x );
範圍 |
類型 |
描述 |
|---|---|---|
|
|
待截斷的雙精度浮點數。 |
傳回一個去掉小數部分的 double。
// Truncate 9.7
Brain.Screen.print("%f", trunc(9.7));
// Output: 9.000000
指數與對數#
sqrt#
傳回一個數的平方根。
Available Functionsdouble sqrt( double x );
範圍 |
類型 |
描述 |
|---|---|---|
|
|
一個非負雙精度浮點數。 |
傳回一個 double ,表示 x 的平方根。
// Display the square root of 121
Brain.Screen.print("%f", sqrt(121));
// Output: 11.000000
exp#
計算一個數的指數。
Available Functionsdouble exp( double x );
範圍 |
類型 |
描述 |
|---|---|---|
|
|
用於計算指數的雙精度浮點數。 |
傳回一個 double 表示 e 的 x 次方。
// Calculate e raised to the power of 1
double result = exp(1);
Brain.Screen.print("%f", result);
// Output: 2.718282
log#
計算一個數的自然對數。
Available Functionsdouble log( double x );
範圍 |
類型 |
描述 |
|---|---|---|
|
|
正雙倍。 |
傳回一個 double ,表示 x 的自然對數。
// Calculate the natural logarithm (base e) of e
double result = log(M_E);
Brain.Screen.print("%f", result);
// Output: 1.000000
log10#
計算一個數的以 10 為底的對數。
Available Functionsdouble log10( double x );
範圍 |
類型 |
描述 |
|---|---|---|
|
|
正雙倍。 |
傳回一個 double ,表示 x 的以 10 為底的對數。
// Calculate the base-10 logarithm of 1000
double result = log10(1000);
Brain.Screen.print("%f", result);
// Output: 3.000000
浮點運算#
fmod#
傳回除法餘數,同時保留被除數的符號。
Available Functionsdouble fmod( double x, double y );
範圍 |
類型 |
描述 |
|---|---|---|
|
|
分紅。 |
|
|
除數。 |
傳回一個 double 表示 x/y 的餘數,餘數的符號為 x。
// Calculate remainder of 10 / -3
// that preserves the sign of 10
double result = fmod(10.0, -3.0);
Brain.Screen.print("%f", result);
// Output: 1.000000
copysign#
傳回一個數值,其大小為 x,符號為 y。
Available Functionsdouble copysign( double x, double y );
範圍 |
類型 |
描述 |
|---|---|---|
|
|
將要使用的值的絕對值。 |
|
|
將使用其符號的值。 |
傳回一個 double 之間的雙精度浮點數,其值為 x 的絕對值和 y 的符號。
// Return -10 with the sign of -3 (negative)
double result = copysign(10, -3);
Brain.Screen.print("%f", result);
// Output: -10.000000