Java 确定android中模拟时钟中时钟指针之间的角度已知的时间
我想在Android应用程序中设置模拟时钟的时间。为此,我重写了Analogclock.java类并建立了Ontouchevent侦听器。我按照和从获得的坐标计算小时和分针之间的角度。现在我可以将手移动到一个新的位置。我还可以从这里得到针之间的新角度。这是相同的代码:Java 确定android中模拟时钟中时钟指针之间的角度已知的时间,java,android,math,clock,Java,Android,Math,Clock,我想在Android应用程序中设置模拟时钟的时间。为此,我重写了Analogclock.java类并建立了Ontouchevent侦听器。我按照和从获得的坐标计算小时和分针之间的角度。现在我可以将手移动到一个新的位置。我还可以从这里得到针之间的新角度。这是相同的代码: case MotionEvent.ACTION_MOVE: x = (int)event.getX(); y = (int)event.getY(); double dx =
case MotionEvent.ACTION_MOVE:
x = (int)event.getX();
y = (int)event.getY();
double dx = x - minuteRect.centerX();
double dy = -(y - minuteRect.centerY());
double inRads = Math.atan2(dy,dx);
if (inRads < 0)
inRads = Math.abs(inRads);
else
inRads = 2*Math.PI - inRads;
double newDegree = Math.toDegrees(inRads);
if(isMove()){
setAngle(newDegree);
invalidate();
}
case MotionEvent.ACTION\u移动:
x=(int)event.getX();
y=(int)event.getY();
double dx=x-minuteRect.centerX();
double dy=-(y-minuteRect.centerY());
双inRads=数学atan2(dy,dx);
如果(印度卢比<0)
inRads=数学绝对值(inRads);
其他的
inRads=2*Math.PI-inRads;
双新度=数学到度(inRads);
if(isMove()){
设定角(新度);
使无效();
}
现在我想设置移动针的时间。
有什么方法可以从坐标或两个针之间的角度计算时间吗?我不知道代码,但数学并不难: 将时针的角度除以2PI,乘以12,然后截断,就得到了小时数。 将分针的角度除以2PI,乘以60,然后截断,就得到了分钟数 示例:06:15:
- 小时角比π大一点<代码>(PI/2PI)*12=6
- 分钟角为π/2<代码>((PI/2)/2PI)*60=15