我們平時在進行數(shù)學計算是,往往會用到三角函數(shù)和反三角函數(shù),最常用的反三角函數(shù)大概就是atan了,因為這個相當于給定兩點之間直線的夾角了。
1, 正切函數(shù)圖像

這時正切函數(shù)圖像,高中的我們就應該知道,正切函數(shù)是周期函數(shù),即同一個值,有很多角度值對應,那么我們用math.h 數(shù)學庫里的函數(shù)atan2(y,x)的時候,返回的到底是什么呢?
2, 弧度制和角度制轉換
反三角函數(shù)的返回值都是弧度制,要換成角度制,需要 *180/π 。 π為3.1415926......
3, 反正切函數(shù)atan2的返回值
解決疑惑最好的辦法就是實踐啦。因為工作中要計算兩點的夾角,對于(y,x)為(+,+),(+,-),(-,+),(-,-)的時候,返回的角度到底是多少,不太確定,所以用以下程序驗證.
#include "stdafx.h"#include <iostream>using namespace std;//#define F_PATH "D://PRoject//testtest//test_tan//test_tan//1.txt" #define PI 3.1415926int _tmain(int argc, _TCHAR* argv[]){ double ang = 0.0 ; double angle = 0.0 ; angle = atan2(2.0,1.0); //63 ang = angle*180/PI ; cout << ang <<endl ; angle = atan2(-2.0,1.0) ; // -63 , 4象限 ang = angle*180/PI ; cout << ang <<endl ; angle = atan2(2.0,-1.0) ; // 116 ,2象限 ang = angle*180/PI ; cout << ang <<endl ; angle = atan2(-2.0,-1.0) ; // -116 3象限 ang = angle*180/PI ; cout << ang <<endl ; cin.get(); return 0;}程序運行結果為:
其實結果也很好理解,程序根據(jù)(x,y)的正負確定象限值,一二象限的為正,三四象限為負。返回角度范圍為(-180,180)。
新聞熱點
疑難解答