沿着灰色圆圈看,他们需要平等地放置来代表小时,这里是我的代码,我错了哪里?愚蠢的数学问题
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