數學#

介紹#

C++ 標準函式庫透過 <cmath>提供基本的數學功能,VEXcode EXP 支援這些功能。這些函數可以執行常見的數學運算,例如三角函數、四捨五入、指數運算等等。

可以用它們來計算位置、角度、距離,或是進行角度和弧度之間的轉換。

以下是可用的數學函數、常數和實用程式清單:

常用數學函數-常用數學工具。

  • abs – 傳回一個數的絕對值。

  • fmin – 傳回輸入值中的最小值。

  • fmax – 傳回輸入值中的最大值。

  • pow – 求一個數的冪。

常數 – 預定義值,範圍從 <cmath> 。

  • M_PI – 常數 π (pi)。

  • M_E – 歐拉數,自然對數的底數。

三角學——計算角度和邊之間的關係。

  • sin – 弧度角的正弦值。

  • cos – 弧度角的餘弦值。

  • tan – 弧度角的正切值。

  • atan – 弧度值的反正切值。

  • atan2 – 考慮象限,y/x 的弧度反正切值。

  • asin – 弧度值的反正弦值。

  • acos – 弧度值的反餘弦。

舍入與絕對值 – 調整精確度或方向。

  • ceil – 向上取整到最接近的整數。

  • floor – 向下取整到最接近的整數。

  • trunc – 刪除小數部分。

指數與對數——冪、根和對數計算。

  • sqrt – 傳回平方根。

  • exp – 計算 e 的 x 次方。

  • log – 自然對數(以 e 為底)。

  • log10 – 以 10 為底的對數。

浮點運算-檢查或分解浮點數值。

  • fmod – 餘數,符號與被除數相同。

  • copysign – 傳回一個值,其符號與另一個值相同。

常用數學函數#

abs#

傳回一個數的絕對值,去掉任何負號。

Available Functions

1 — 傳回整數的絕對值。

int abs( int x );

2 — 傳回雙精確度浮點數的絕對值。

double abs( double x );

Parameters

範圍

類型

描述

x

int or double

整數或雙精確度浮點數。

Return Values

傳回輸入值的絕對值,類型與輸入值相同。

Examples
// Display the absolute value of -10
Brain.Screen.print("%d", abs(-10));

// Output: 10

fmin#

傳回兩個值中較小的那個,值為雙精度浮點數。

Available Functions
double fmin( double value1, double value2 );

Parameters

範圍

類型

描述

value1

double

首先要比較的值。

value2

double

第二個要比較的值。

Return Values

傳回 double 表示兩個輸入值中較小的那個。

Examples
// Display the lower of two values
Brain.Screen.print("%f", fmin(7, 4));

// Output: 4.000000

fmax#

傳回兩個值中較大的那個,值為雙精度浮點數。

Available Functions
double fmax( double value1, double value2 );

Parameters

範圍

類型

描述

value1

double

首先要比較的值。

value2

double

第二個要比較的值。

Return Values

傳回 double 的雙精度浮點數,表示兩個輸入值中較大的一個。

Examples
// Display the higher of two values
Brain.Screen.print("%f", fmax(7, 4));

// Output: 7.000000

pow#

傳回一個雙精確度浮點數的冪。

Available Functions
double pow( double base, double exponent );

Parameters

範圍

類型

描述

base

double

基數。

exponent

double

指數。

Return Values

傳回一個 double 表示底數的指數次方。

Examples
// Display 2 to the power of 3
Brain.Screen.print("%f", pow(2, 3));

// Output: 8.000000

常量#

常量是預先定義好的數值,在專案過程中保持不變。它們可以直接用於計算,無需任何定義或賦值。

M_PI#

M_PI 給出了數學常數 π,即圓的周長與其直徑之比。

Available Constants
const double M_PI;

Parameters

此常數沒有參數。

Return Values

傳回數學常數 π,值為 double。

Examples
// 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 Constants
const double M_E;

Parameters

此常數沒有參數。

Return Values

傳回數學常數 e,值為 double。

Examples
// Calculate e raised to the power of 2
double result = pow(M_E, 2);

Brain.Screen.print("%f", result);  

// Output: 7.389056

三角學#

sin#

計算弧度角的正弦值並傳回一個雙精度浮點數。

Available Functions
double sin( double x );

Parameters

範圍

類型

描述

x

double

表示弧度角度的雙精度浮點數。

Return Values

傳回一個 double ,表示角度的正弦值。

Examples
// 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 Functions
double cos( double x );

Parameters

範圍

類型

描述

x

double

表示弧度角度的雙精度浮點數。

Return Values

傳回一個 double 的雙精度浮點數,表示角度的餘弦值。

Examples
// 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 Functions
double tan( double x );

Parameters

範圍

類型

描述

x

double

表示弧度角度的雙精度浮點數。

Return Values

傳回一個 double ,表示角度的正切值。

Examples
// 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 Functions
double atan( double x );

Parameters

範圍

類型

描述

x

double

雙精度值。

Return Values

傳回一個 double ,表示弧度製的反正切值。

Examples
// 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 Functions
double atan2( double y, double x );

Parameters

範圍

類型

描述

y

double

表示 y 座標的雙精確度浮點數。

x

double

表示 x 座標的雙精確度浮點數。

Return Values

傳回一個 double ,表示 y/x 的弧度反正切值。

Examples
// 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 Functions
double asin( double x );

Parameters

範圍

類型

描述

x

double

介於 -1 和 1 之間的雙精度浮點數。

Return Values

傳回一個 double ,表示弧度製的反正弦值。

Examples
// 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 Functions
double acos( double x );

Parameters

範圍

類型

描述

x

double

介於 -1 和 1 之間的雙精度浮點數。

Return Values

傳回一個 double ,表示弧度製的反餘弦值。

Examples
// 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 Functions
double ceil( double x );

Parameters

範圍

類型

描述

x

double

一個需要四捨五入的雙數。

Return Values

傳回 double 雙精確度浮點數,表示大於或等於 x 的最小整數。

Examples
// Round up 9.7
Brain.Screen.print("%f", ceil(9.7));

// Output: 10.000000

floor#

傳迴向下取整的雙精確度浮點數。

Available Functions
double floor( double x );

Parameters

範圍

類型

描述

x

double

雙數向下取整。

Return Values

傳回 double 之間的雙精確度浮點數,表示小於或等於 x 的最大整數。

Examples
// Round down 9.7
Brain.Screen.print("%f", floor(9.7));

// Output: 9.000000

trunc#

傳回一個雙精度浮點數,小數部分設為零。

Available Functions
double trunc( double x );

Parameters

範圍

類型

描述

x

double

待截斷的雙精度浮點數。

Return Values

傳回一個去掉小數部分的 double。

Examples
// Truncate 9.7
Brain.Screen.print("%f", trunc(9.7));

// Output: 9.000000

指數與對數#

sqrt#

傳回一個數的平方根。

Available Functions
double sqrt( double x );

Parameters

範圍

類型

描述

x

double

一個非負雙精度浮點數。

Return Values

傳回一個 double ,表示 x 的平方根。

Examples
// Display the square root of 121
Brain.Screen.print("%f", sqrt(121));

// Output: 11.000000

exp#

計算一個數的指數。

Available Functions
double exp( double x );

Parameters

範圍

類型

描述

x

double

用於計算指數的雙精度浮點數。

Return Values

傳回一個 double 表示 e 的 x 次方。

Examples
// Calculate e raised to the power of 1
double result = exp(1);

Brain.Screen.print("%f", result);
  
// Output: 2.718282

log#

計算一個數的自然對數。

Available Functions
double log( double x );

Parameters

範圍

類型

描述

x

double

正雙倍。

Return Values

傳回一個 double ,表示 x 的自然對數。

Examples
// Calculate the natural logarithm (base e) of e
double result = log(M_E);

Brain.Screen.print("%f", result);  
  
// Output: 1.000000

log10#

計算一個數的以 10 為底的對數。

Available Functions
double log10( double x );

Parameters

範圍

類型

描述

x

double

正雙倍。

Return Values

傳回一個 double ,表示 x 的以 10 為底的對數。

Examples
// Calculate the base-10 logarithm of 1000
double result = log10(1000);

Brain.Screen.print("%f", result);  
  
// Output: 3.000000

浮點運算#

fmod#

傳回除法餘數,同時保留被除數的符號。

Available Functions
double fmod( double x, double y );

Parameters

範圍

類型

描述

x

double

分紅。

y

double

除數。

Return Values

傳回一個 double 表示 x/y 的餘數,餘數的符號為 x。

Examples
// 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 Functions
double copysign( double x, double y );

Parameters

範圍

類型

描述

x

double

將要使用的值的絕對值。

y

double

將使用其符號的值。

Return Values

傳回一個 double 之間的雙精度浮點數,其值為 x 的絕對值和 y 的符號。

Examples
// Return -10 with the sign of -3 (negative)
double result = copysign(10, -3);

Brain.Screen.print("%f", result);  
  
// Output: -10.000000