沿着灰色圓圈看,他們需要平等地放置來代表小時,這裏是我的代碼,我錯了哪裏?愚蠢的數學問題
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);
}
沿着灰色圓圈看,他們需要平等地放置來代表小時,這裏是我的代碼,我錯了哪裏?愚蠢的數學問題
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);
}
角度必須用弧度提供給Math.cos。
所以,與其
Math.cos((double) (i*30))
使用
Math.cos(i*Math.PI/6.0)
請注意,我也去掉了無用投雙:乘以一個int和雙已經產生了兩倍。
ahh謝謝,自從我上次使用sin和cos以來,已經很久了,呵呵,這樣一個愚蠢的問題:) – 2012-07-12 09:21:17
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
Math.sin
和Math.cos
上以弧度的角度和未度操作。改正,(0
和2*Math.PI
之間)通過pi和除法乘以180
ahh謝謝你,自從我上次使用sin和cos以來,已經很久了,嘿嘿,這樣一個愚蠢的問題:) – 2012-07-12 09:21:25
@Dabiel Mendel:如果下面的答案之一是有用的,你應該接受它。 – andand 2012-07-13 14:59:17