C/C++中的atan和atan2函數(shù)實(shí)例用法

在C語言的math.h或C++中的cmath中有兩個求反正切的函數(shù)atan(double x)與atan2(double y,double x) 他們返回的值是弧度 要轉(zhuǎn)化為角度再自己處理下。

創(chuàng)新互聯(lián)專注于成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、網(wǎng)站制作、網(wǎng)站開發(fā)。公司秉持“客戶至上,用心服務(wù)”的宗旨,從客戶的利益和觀點(diǎn)出發(fā),讓客戶在網(wǎng)絡(luò)營銷中找到自己的駐足之地。尊重和關(guān)懷每一位客戶,用嚴(yán)謹(jǐn)?shù)膽B(tài)度對待客戶,用專業(yè)的服務(wù)創(chuàng)造價值,成為客戶值得信賴的朋友,為客戶解除后顧之憂。

前者接受的是一個正切值(直線的斜率)得到夾角,但是由于正切的規(guī)律性本可以有兩個角度的但它卻只返回一個,因?yàn)閍tan的值域是從-90~90 也就是它只處理一四象限,所以一般不用它。

第二個atan2(double y,double x) 其中y代表已知點(diǎn)的Y坐標(biāo) 同理x ,返回值是此點(diǎn)與遠(yuǎn)點(diǎn)連線與x軸正方向的夾角,這樣它就可以處理四個象限的任意情況了,它的值域相應(yīng)的也就是-180~180了

例如:

例1:斜率是1的直線的夾角

cout<<atan(1.0)*180/PI;//45°

cout<<atan2(1.0,1.0)*180/PI;//45° 第一象限

cout<<atan2(-1.0,-1.0)*180/PI;//-135°第三象限

后兩個斜率都是1 但是atan只能求出一個45°

例2:斜率是-1的直線的角度

cout<<atan(-1.0)*180/PI;//-45°

cout<<atan2(-1.0,1.0)*180/PI;//-45° y為負(fù) 在第四象限

cout<<atan2(1.0,-1.0)*180/PI;//135° x為負(fù) 在第二象限

常用的不是求過原點(diǎn)的直線的夾角 往往是求一個線段的夾角 這對于atan2就更是如魚得水了

例如求A(1.0,1.0) B(3.0,3.0)這個線段AB與x軸正方向的夾角

用atan2表示為 atan2(y2-y1,x2-x1) 即 atan2(3.0-1.0,3.0-1.0)

它的原理就相當(dāng)于把A點(diǎn)平移到原點(diǎn)B點(diǎn)相應(yīng)變成B'(x2-x1,y2-y1)點(diǎn) 這樣就又回到先前了

例三:

A(0.0,5.0) B(5.0,10.0)

線段AB的夾角為

cout<<atan2(5.0,5.0)*180/PI;//45°

以上就是創(chuàng)新互聯(lián)整理的相關(guān)內(nèi)容,希望能夠幫助到大家。

網(wǎng)站題目:C/C++中的atan和atan2函數(shù)實(shí)例用法
轉(zhuǎn)載來于:http://bm7419.com/article38/jdeepp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、靜態(tài)網(wǎng)站、品牌網(wǎng)站制作網(wǎng)站維護(hù)、營銷型網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計