2012-07-12 156 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