Android:自定义view之角度与弧度

2017-04-18  本文已影响0人  李庆雪
前言
角度与弧度的定义

角度和弧度一样都是描述角的一种度量单位,下面是它们的定义:
角度 两条射线从圆心向圆周射出,形成一个夹角和夹角正对的一段弧。当这段弧长正好等于圆周长的360分之一时,两条射线的夹角的大小为1度.
弧度 两条射线从圆心向圆周射出,形成一个夹角和夹角正对的一段弧。当这段弧长正好等于圆的半径时,两条射线的夹角大小为1弧度.(也就是1弧度是一个double值)

1度 1弧度
角度和弧度的换算关系

rad 是弧度, deg 是角度


应用

在自定义view中求一个角度的时候,先求出弧度在转化为角度
假设:点击view中一点A(touchPoint.x,touchPoint.y),求出相对于O(centerPoint.x,centerPoint.y)的角度(A就是view坐标系中点击的一点,O就相当于view的中心点)

 // 两点在X轴的距离
float lenX = (float) (touchPoint.x - centerPoint.x);
// 两点在Y轴距离
float lenY = (float) (touchPoint.y - centerPoint.y);
// 两点距离
float lenXY = (float) Math.sqrt((double) (lenX * lenX + lenY * lenY));
// 计算弧度
double radian = Math.acos(lenX / lenXY) * (touchPoint.y < centerPoint.y ? -1 : 1);
double tmp = Math.round(radian / Math.PI * 180); 
// 计算角度
double angle =tmp >= 0 ? tmp : 360 + tmp;

自定义View目录

上一篇下一篇

猜你喜欢

热点阅读