2011-05-04 62 views
0

我需要創建一個模擬時鐘,其中顯示的是圓的中心和分鐘數。我需要計算用戶點擊的圓周上的點的角度,用垂直的方向計算minutes.Any幫助將是非常有用..點擊的角度與垂直對齊

回答

0

的公式將是

angle/totalDegrees * 60 

取決於你是如何得到你的角度ofcourse定義,但讓我們默認爲「正常」的程度: 你有60分鐘和360度。

直下,又名180度,將是30分鐘。直線上升將是0分鐘,0度等

這將使你的計算

angle/360 * 60 

你必須映射

180 -> 30 
    0 -> 0 
90 -> 15 
+0

謝謝您回覆,但我需要幫助如何獲得圖像點擊(而不是如何計算分鐘)的角度。 – Puja 2011-05-04 11:38:02

+0

你能否更新你的問題,並讓它更清晰一點呢?也許甚至給一些更多的信息,比如你有什麼,等等等等。 – Nanne 2011-05-04 12:20:25

+0

當我點擊圓周的任何地方時,我需要計算它指向的適當的分鐘數。你說的是前進了一步。在那之前,我該如何捕獲點並計算角度? – Puja 2011-05-04 13:07:24

0

這給標準的角度,正x作爲具有零角度:

angle = Math.atan2(clicky-clockCenterY,clickx-clockCenterX) 

要使12點(角度pi/2)零角度,只是減去PI/2:

angle = Math.atan2(clicky-clockCenterY,clickx-clockCenterX) - Math.Pi/2.0; 

Javadoc中Math.atan2

給定的角度爲以弧度爲單位(爲一個整圓2PI),將其轉換爲分鐘(60一整圈) :

minuteAngle = 60.0*(angle/(2.0*Math.Pi)) 

這可能會給-15minutes的價值,什麼應爲45分鐘,以便:

if (minuteAngle < 0.0) 
    minuteAngle += 60.0;