91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C/C++中的atan和atan2函數實例用法

發布時間:2020-09-13 14:13:17 來源:腳本之家 閱讀:241 作者:liloulilou 欄目:編程語言

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

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

第二個atan2(double y,double x) 其中y代表已知點的Y坐標 同理x ,返回值是此點與遠點連線與x軸正方向的夾角,這樣它就可以處理四個象限的任意情況了,它的值域相應的也就是-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為負 在第四象限

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

常用的不是求過原點的直線的夾角 往往是求一個線段的夾角 這對于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)

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

例三:

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

線段AB的夾角為

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

以上就是億速云整理的相關內容,希望能夠幫助到大家。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

邹城市| 屏东市| 青浦区| 甘孜| 岑溪市| 郯城县| 弥渡县| 弋阳县| 隆德县| 永吉县| 汤阴县| 噶尔县| 奎屯市| 定远县| 洛宁县| 古田县| 通许县| 吉水县| 沂南县| 巩义市| 调兵山市| 石狮市| 上饶县| 汶上县| 平邑县| 绥棱县| 长阳| 金川县| 福清市| 商都县| 纳雍县| 开封市| 水富县| 长海县| 永仁县| 伊金霍洛旗| 阳山县| 阿合奇县| 金乡县| 台湾省| 介休市|