Java 确定android中模拟时钟中时钟指针之间的角度已知的时间

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 =

我想在Android应用程序中设置模拟时钟的时间。为此,我重写了Analogclock.java类并建立了Ontouchevent侦听器。我按照从获得的坐标计算小时和分针之间的角度。现在我可以将手移动到一个新的位置。我还可以从这里得到针之间的新角度。这是相同的代码:

   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

但我只知道两个针之间的角度。为了得到小时的角度,我看到的公式是-1/2(60*Hr+Min)。但就我而言,我不会有更新的会议记录。我只会得到上面代码中的指针和坐标与时钟之间的角度-(x,y)在你的情况下,你怎么知道π/2是分钟角?和π作为小时角?如果以正y轴为基准(即12点),如果是6:15,则小时针的角度为π,分钟针的角度为π/2。