C语言中已知sin、cos的值怎么求角度?比如sina=0.2,那么a=?请求有经验的帮帮忙!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中已知sin、cos的值怎么求角度?比如sina=0.2,那么a=?请求有经验的帮帮忙!相关的知识,希望对你有一定的参考价值。

c语言的math.h头文件中有反三角函数的。比如sin a = 0.2 , 只需 double a = asin(0.2),但是究竟在哪个区间,加减2*pi的问题还得自行解决…… 参考技术A 利用你的数学知识啊!!
include一下cmath库
asin(sin值)=角度
或者
acos(cos值)=角度

c语言中cos函数的用法

cos函数的输入值为弧度,也就是将cos函数后加上弧度,然后就可以得到想要的结果。我们需要把度化为弧度:
假设度数为d,则对应的弧度为:d * pi / 180
参考技术A 同学,以下请仔细参详, 不是有意做长, 实在是都有用.

Trigonometry Functions (Sample)
The sample code below illustrates how to use trigonometry (sin, cos, tan, and so on) functions in Visual C++.

Required Header:
<valarray>

Prototype:

// acos
template<class T>
inline valarray<T> acos(const valarray<T>& x);

// asin
template<class T>
inline valarray<T> asin(const valarray<T>& x);

// atan
template<class T>
inline valarray<T> atan(const valarray<T>& x);

// atan2
template<class T>
inline valarray<T> atan2(const valarray<T>& x, const valarray<T>& y);

template<class T>
inline valarray<T> atan2(const valarray<T> x, const T& y);

template<class T>
inline valarray<T> atan2(const T& x, const valarray<T>& y);

// cos
template<class T>
inline valarray<T> cos(const valarray<T>& x);

// cosh
template<class T>
inline valarray<T> cosh(const valarray<T>& x);

// sin
template<class T>
inline valarray<T> sin(const valarray<T>& x);

// sinh
template<class T>
inline valarray<T> sinh(const valarray<T>& x);

// tan
template<class T>
inline valarray<T> tan(const valarray<T>& x);

// tanh
template<class T>
inline valarray<T> tanh(const valarray<T>& x);

Note: The class/parameter names in the prototype do not match the version in the header file. Some have been modified to improve readability.

Description:
This article illustrates the use of STL trigonometry functions through sample code.

Sample Code:

//////////////////////////////////////////////////////////////////////
//
// Compile options needed: /GX
//
// main.cpp : Illustrates the use of STL trigonometry functions.
//
// Functions:
//
// acos, asin, atan, atan2, cos, cosh, sin, sinh, tan, tanh
//////////////////////////////////////////////////////////////////////

#include <iostream> // for i/o functions
#include <valarray> // for valarray
#include <cmath> // for trigonometry functions

using namespace std ;

#define ARRAY_SIZE 3 // array size

void main()

// Initialize val_array to values -1, 0 and 1.
valarray<double> val_array(ARRAY_SIZE);
for (int i = 0; i < ARRAY_SIZE; i++)
val_array[i] = i - 1;

// Display the size of val_array.
cout << "Size of val_array = " << val_array.size() << endl;

// Display the values of val_array before calling any trigonometry
// functions.
cout << "The values in val_array:" << endl;
for (i = 0; i < ARRAY_SIZE; i++)
cout << val_array[i] << " ";
cout << endl << endl;

// Initialize rev_valarray that is the reverse of val_array.
valarray<double> rev_valarray(ARRAY_SIZE);
for (i = 0; i < ARRAY_SIZE; i++)
rev_valarray[i] = val_array[ARRAY_SIZE - i - 1];

// Display the size of rev_valarray.
cout << "Size of rev_valarray = " << rev_valarray.size() << endl;

// Display the values of rev_valarray.
cout << "The values in rev_valarray:" << endl;
for (i = 0; i < ARRAY_SIZE; i++)
cout << rev_valarray[i] << " ";
cout << endl << endl;

// rvalue_array to hold the return value from calling the trigonometry
// functions.
valarray<double> rvalue_array;

// ----------------------------------------------------------------
// acos() - display the result of rvalue_array
// ----------------------------------------------------------------
rvalue_array = acos(val_array);
cout << "The result after calling acos():" << endl;
for (i = 0; i < ARRAY_SIZE; i++)
cout << rvalue_array[i] << " ";
cout << endl << endl;

// ----------------------------------------------------------------
// asin() - display the result of rvalue_array
// ----------------------------------------------------------------
rvalue_array = asin(val_array);
cout << "The result after calling asin():" << endl;
for (i = 0; i < ARRAY_SIZE; i++)
cout << rvalue_array[i] << " ";
cout << endl << endl;

// ----------------------------------------------------------------
// atan() - display the result of rvalue_array
// ----------------------------------------------------------------
rvalue_array = atan(val_array);
cout << "The result after calling atan():" << endl;
for (i = 0; i < ARRAY_SIZE; i++)
cout << rvalue_array[i] << " ";
cout << endl << endl;

// ----------------------------------------------------------------
// atan2() - display the result of rvalue_array
// ----------------------------------------------------------------

// This template function returns an object of class valarray<T>,
// each of whose elements at I is the arctangent of x[I] / y[I].
rvalue_array = atan2(val_array, rev_valarray);
cout << "The result after calling atan2(val_array, rev_valarray):"
<< endl;
for (i = 0; i < ARRAY_SIZE; i++)
cout << rvalue_array[i] << " ";
cout << endl << endl;

// This template function stores in element I the arctangent of
// x[I] / y.
rvalue_array = atan2(val_array, 3.1416);
cout << "The result after calling atan2(val_array, 3.1416):" << endl;
for (i = 0; i < ARRAY_SIZE; i++)
cout << rvalue_array[i] << " ";
cout << endl << endl;

// This template function stores in element I the arctangent of
// x / y[I].
rvalue_array = atan2(3.1416, val_array);
cout << "The result after calling atan2(3.1416, val_array):" << endl;
for (i = 0; i < ARRAY_SIZE; i++)
cout << rvalue_array[i] << " ";
cout << endl << endl;

// ----------------------------------------------------------------
// cos() - display the result of rvalue_array
// ----------------------------------------------------------------
rvalue_array = cos(val_array);
cout << "The result after calling cos():" << endl;
for (i = 0; i < ARRAY_SIZE; i++)
cout << rvalue_array[i] << " ";
cout << endl << endl;

// ----------------------------------------------------------------
// cosh() - display the result of rvalue_array
// ----------------------------------------------------------------
rvalue_array = cosh(val_array);
cout << "The result after calling cosh():" << endl;
for (i = 0; i < ARRAY_SIZE; i++)
cout << rvalue_array[i] << " ";
cout << endl << endl;

// ----------------------------------------------------------------
// sin() - display the result of val_array
// ----------------------------------------------------------------
rvalue_array = sin(val_array);
cout << "The result after calling sin():" << endl;
for (i = 0; i < ARRAY_SIZE; i++)
cout << rvalue_array[i] << " ";
cout << endl << endl;

// ----------------------------------------------------------------
// sinh() - display the result of val_array
// ----------------------------------------------------------------
rvalue_array = sinh(val_array);
cout << "The result after calling sinh():" << endl;
for (i = 0; i < ARRAY_SIZE; i++)
cout << rvalue_array[i] << " ";
cout << endl << endl;

// ----------------------------------------------------------------
// tan() - display the result of val_array
// ----------------------------------------------------------------
rvalue_array = tan(val_array);
cout << "The result after calling tan():" << endl;
for (i = 0; i < ARRAY_SIZE; i++)
cout << rvalue_array[i] << " ";
cout << endl << endl;

// ----------------------------------------------------------------
// tanh() - display the result of val_array
// ----------------------------------------------------------------
rvalue_array = tanh(val_array);
cout << "The result after calling tanh():" << endl;
for (i = 0; i < ARRAY_SIZE; i++)
cout << rvalue_array[i] << " ";
cout << endl << endl;


Program Output is:

Size of val_array = 3
The values in val_array:
-1 0 1

Size of rev_valarray = 3
The values in rev_valarray:
1 0 -1

The result after calling acos():
3.14159 1.5708 0

The result after calling asin():
-1.5708 0 1.5708

The result after calling atan():
-0.785398 0 0.785398

The result after calling atan2(val_array, rev_valarray):
-0.785398 0 2.35619

The result after calling atan2(val_array, 3.1416):
-0.308168 0 0.308168

The result after calling atan2(3.1416, val_array):
1.87896 1.5708 1.26263

The result after calling cos():
0.540302 1 0.540302

The result after calling cosh():
1.54308 1 1.54308

The result after calling sin():
-0.841471 0 0.841471

The result after calling sinh():
-1.1752 0 1.1752

The result after calling tan():
-1.55741 0 1.55741

The result after calling tanh():
-0.761594 0 0.761594
参考技术B 是用弧度做单位的本回答被提问者采纳

以上是关于C语言中已知sin、cos的值怎么求角度?比如sina=0.2,那么a=?请求有经验的帮帮忙!的主要内容,如果未能解决你的问题,请参考以下文章

c语言,已知正切值如何求角度

C++怎么求圆弧上的坐标

怎么用iPhone计算器的sin或cos反算角度?

怎么用iPhone计算器的sin或cos反算角度啊

C语言sin怎么用

python已知cos求弧度