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