1. 程式人生 > >C++中tan、atan、sin、cos等三角函式用法的程式碼演示及結果,注意角度和弧度的轉換!

C++中tan、atan、sin、cos等三角函式用法的程式碼演示及結果,注意角度和弧度的轉換!

進行相機座標系相關公式推導時,經常碰到三角函式的使用。時間一長就生疏,碰到問題再查,很費時間。所以就總結一下,也希望能幫到更多的人。下面就通過簡練的程式碼,把常用的cos、sin、tan、atan等通過程式碼及結果都說清楚。
注意弧度和角度的區別!!!

1、程式碼

#include <iostream>
#include <cmath>

using namespace std;
#define PI 3.1415926

int main()
{
	//注意tan、atan等函式不能接受整數,tan(45)會報錯“error C2668: 'tan' : ambiguous call to overloaded function”
	float tanValue1 = tan(45.0f);   
	float tanValue2 = tan(45*PI/180.0f);
	cout<<"tan(45) = "<<tanValue1<<endl;
	cout<<"tan(45*PI/180) = "<<tanValue2<<endl;
	cout<<"可以看出:tan函式輸入的是弧度! 如果想對角度進行tan運算,需要乘以(PI/180)把角度轉為弧度。"<<endl<<endl;

	float atanValue1 = atan(1.0f);  
	float atanValue2 = atan(1.0f)*180.0f/PI; 
	cout<<"atan(1) = "<<atanValue1<<endl;
	cout<<"(atan(1.0))*180/PI = "<<atanValue2<<endl;
	cout<<"可以看出:atan函式輸出的是弧度! 如果想進行atan運算得到角度,需要乘以(180/PI)把弧度轉為角度"<<endl<<endl;

	cin.get();
	return 0;
}

2、輸出結果

3、結論

C++中sin、cos、tan、asin、acos、atan等三角函式的輸入是弧度,而不是角度

如果想對角度進行這些三角函式運算,需要乘以(PI/180)把角度轉為弧度。