2012-01-05 42 views
0

我希望設置時間從模擬時鐘在Android應用程序。爲此,我重寫了Analogclock.java類並建立了Ontouchevent偵聽器。我跟着this methodthis formula從獲得的座標計算小時和分針之間的角度。現在我可以把手移到一個新的位置。而且我也可以從中獲得針之間的新角度。這是相同的代碼:要確定時鐘之間的角度之間的時間已知在模擬時鐘android

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(); 
     } 

我現在想組,其中針移動的時間。 有沒有什麼辦法可以從座標或從兩針之間的角度來計算時間

回答

1

我不知道代碼,但是數學並不難:

鴻溝時針由2PI的角度,乘以12,並截斷了,你有時間。 將分針的角度除以2PI,乘以60並截斷,即得分鐘。

實施例:6點15:

  • 時針角度比PI多一點。 (PI/2PI) * 12 = 6
  • 分鐘角度爲PI/2。 ((PI/2)/2PI) * 60 = 15
+0

但我只會有兩個針之間的角度。爲了得到小時的角度,我看到的公式是 - 1/2(60 * Hr + Min)。但在我的情況下,我不會有更新的會議記錄。我只會從上面的代碼針和coordiantes之間的角度與時鐘 - (x,y) – JaveDeveloper 2012-01-06 03:32:57

+0

在你的情況,你是怎麼知道PI/2是微小的角度?和PI作爲小時角? – JaveDeveloper 2012-01-06 03:42:29

+0

如果您將正Y軸作爲參考(即12點鐘),並且如果它是6:15,則時針的角度爲pi,並且分針的角度爲PI/2。 – 2012-01-06 07:43:36

相關問題