计算平面坐标某点(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

点的 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值