2012-07-12 249 views
2

沿着灰色圓圈看,他們需要平等地放置來代表小時,這裏是我的代碼,我錯了哪裏?愚蠢的數學問題

for (int i=0;i<12;i++) 
     { 
      c.drawCircle(140*(float)Math.cos((double) (i*30))+ width/2 , 140*(float) Math.sin((double) (i*30)) + height/2, 1, p); 
     } 

enter image description here

+1

@Dabiel Mendel:如果下面的答案之一是有用的,你應該接受它。 – andand 2012-07-13 14:59:17

回答

6

角度必須用弧度提供給Math.cos

所以,與其

Math.cos((double) (i*30)) 

使用

Math.cos(i*Math.PI/6.0) 

請注意,我也去掉了無用投雙:乘以一個int和雙已經產生了兩倍。

+0

ahh謝謝,自從我上次使用sin和cos以來,已經很久了,呵呵,這樣一個愚蠢的問題:) – 2012-07-12 09:21:17

+0

You應該使用[java.lang.Math.toRadians()](http://docs.oracle.com/javase/6/docs/api/java/lang/Math.html#toRadians%28double%29)。 – starblue 2012-07-12 20:39:43

4

Math.sinMath.cos上以弧度的角度和未度操作。改正,(02*Math.PI之間)通過pi和除法乘以180

+0

ahh謝謝你,自從我上次使用sin和cos以來,已經很久了,嘿嘿,這樣一個愚蠢的問題:) – 2012-07-12 09:21:25