方法参数解析
Math.atan2(y, x)
:将两个参数计算出弧度
- 参数解析:
- y:指定点的 y 坐标的数字;在三角计算中为对边边长;在圆的计算弧度中为指定y点与中心点的距离,指定点y减去中心点的y即可得出
- x:指定点的 x 坐标的数字;在三角计算中为对边边长;在圆的计算弧度中为指定x点与中心点的距离,指定点x减去中心点的x即可得出
Math.toDegrees(double angRad)
:将参数从弧度转换为角度
方法的使用
//在圆弧(或圆形)中的取角度法
//取圆心点
int centerX = getWidth() / 2;
int centerY = getHeight() / 2;
//取指定点相对于圆心点的弧度
float dx = x - centerX;
float dy = y - centerY;
float andRad = (float) Math.atan2(dy, dx);
//弧度转换为角度
float angle = (float) Math.toDegrees(andRad);
//如果需要赋值给圆弧使用触控点进行操纵任意角度,则需要定义从0到360的固定圆角度
float startAngle = 130; //起点角度
//纠正起点角度与最大圆的度数(不管最大弧度是多少,圆的度数肯定是固定360),否则会出现偏差值
angle = (angle - startAngle + 360) % 360;
//最后得出触控点的精准角度
float sweepAngle = angle;