atan2()函數在valarray頭文件中定義。此函數計算valarray中每個元素的(y /x)值的反正切,並返回一個valarray,其中包含所有元素的反正切。其中y是y坐標的比例,x是x坐標的比例。
用法:
std::valarray res = atan2 (y-coords, x-coords)
參數:該函數接受兩個強製性參數,分別為X-coords和Y-coords。
注意:如果兩個參數都是valarray對象,並且它們的大小不匹配,則它們的行為為undefined。
返回值:此函數返回一個valarray,其中包含所有元素的反正切。
以下示例程序旨在說明上述函數:
示例1:
// atan2 valarray example
// programs illustrate the atan2() function:
#include <iostream>
#include <valarray>
using namespace std;
int main()
{
// intilaize both the array X and Y coords
double y[] = { 0.0, 3.0, -2.0 };
double x[] = { -3.0, 3.0, -1.0 };
// intilaize both the valarray X and Y coords
valarray<double> ycoords(y, 3);
valarray<double> xcoords(x, 3);
// store results in valarray res
valarray<double> res = atan2(ycoords, xcoords);
// print results of atan2() function
cout << "results:";
for (size_t i = 0; i < res.size(); ++i)
cout << ' ' << res[i];
cout << '\n';
return 0;
}
輸出:
results: results: 3.14159 0.785398 -2.03444
示例2:
// atan2 valarray example
// programs illustrate the atan2() function:
#include <iostream>
#include <valarray>
using namespace std;
int main()
{
// intilaize both the array X and Y coords
double y[] = { 4.0, 5.6, -2.8, 7.3 };
double x[] = { 5.0, -1.5, 7.0, -0.8 };
// intilaize both the valarray X and Y coords
valarray<double> ycoords(y, 4);
valarray<double> xcoords(x, 4);
// store results in valarray res
valarray<double> res = atan2(ycoords, xcoords);
// print results of atan2() function
cout << "results:";
for (size_t i = 0; i < res.size(); ++i)
cout << ' ' << res[i];
cout << '\n';
return 0;
}
輸出:
results: 0.674741 1.83251 -0.380506 1.67995
示例3:錯誤和異常:當將大小不同的valarray對象作為參數傳遞時,該函數不返回任何匹配函數來調用錯誤。
// atan2 valarray example
// programs illustrate the atan2() function:
#include <iostream>
#include <valarray>
using namespace std;
int main()
{
// intilaize both the array X and Y coords
double y[] = { -2.8, 7.3 };
float x[] = { 5.0, -0.8, 3.2, 5, 1 };
// intilaize both the valarray X and Y coords
valarray<double> ycoords(y, 2);
valarray<float> xcoords(x, 4);
// store results in valarray res
valarray<double> res = atan2(ycoords, xcoords);
// print results of atan2() function
cout << "results:";
for (size_t i = 0; i < res.size(); ++i)
cout << ' ' << res[i];
cout << '\n';
return 0;
}
輸出:
prog.cpp: In function 'int main()': prog.cpp:14:48: error: no matching function for call to 'atan2(std::valarray&, std::valarray&)' valarray res = atan2 (ycoords, xcoords); ^
相關用法
- C++ atan2()用法及代碼示例
- C++ valarray tan()用法及代碼示例
- C++ valarray sin()用法及代碼示例
- C++ valarray end()用法及代碼示例
- C++ valarray abs()用法及代碼示例
- C++ valarray exp()用法及代碼示例
- C++ valarray cos()用法及代碼示例
- C++ valarray pow()用法及代碼示例
- C++ valarray log()用法及代碼示例
- C++ valarray asin()用法及代碼示例
- C++ valarray resize()用法及代碼示例
- C++ valarray swap()用法及代碼示例
- C++ valarray size()用法及代碼示例
注:本文由純淨天空篩選整理自Rajput-Ji大神的英文原創作品 valarray atan2() function in C++。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。