计算平面坐标某点(x,y)与原点(0,0)的角度
????????以前某個項目有一個功能需要手指滑動一個餅圖。當時搬高中數學公式,并大量查詢網絡,花了兩個小時把那個功能的數學算法搞定。
????????今天在看android下一段源碼時,突然發現一個數學函數:Math.atan2 ,一下子羞愧難當,原本一個簡單的數學函數,我花了兩個小時。。。。。。
???????知恥而后勇,把這個函數好好熟悉一下:
?
Java:
public static native double atan2(double paramDouble1, double paramDouble2);
paramDouble1 y坐標
paramDouble2 x坐標
?
C#:
public static double Atan2 (
??? double y,
??? double x
)
?
參數
y點的 y 坐標。
點的 x 坐標。
返回值
角 θ,以弧度為單位,滿足 -π≤θ≤π,且 tan(θ) = y / x,其中 (x, y) 是笛卡兒平面中的點。請看下面:
-
如果 (x, y) 在第 1 象限,則 0 < θ < π/2。
-
如果 (x, y) 在第 2 象限,則 π/2 < θ≤π。
-
如果 (x, y) 在第 3 象限,則 -π < θ < -π/2。
-
如果 (x, y) 在第 4 象限,則 -π/2 < θ < 0。
返回值為笛卡爾平面中的角度,該角度由 x 軸和起點為原點 (0,0)、終點為 ( x,y ) 的向量構成。
?
?
根據返回的θ,可以計算其角度:θ*(180 / Math.PI)?
?
應用:計算兩點間連線的傾斜角.
Math.atan2()函數返回點(x,y)和原點(0,0)之間直線的傾斜角.那么如何計算任意兩點間直線的傾斜角呢?只需要將兩點x,y坐標分別相減得到一個新的點(x2-x1,y2-y1).然后利用他求出角度就可以了.使用下面的一個轉換可以實現計算出兩點間連線的夾角.
Math.atan2(y2-y1,x2-x1)
轉載于:https://www.cnblogs.com/KiloNet/archive/2010/12/16/1908203.html
總結
以上是生活随笔為你收集整理的计算平面坐标某点(x,y)与原点(0,0)的角度的全部內容,希望文章能夠幫你解決所遇到的問題。