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);
    }

ここに画像の説明を入力してください

4

2 に答える 2

6

角度は、ラジアン(との間)でMath.cos0に指定する必要があります2*Math.PI

だから、代わりに

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

使用する

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

また、無駄なキャストをdoubleに削除したことに注意してください。intとdoubleを乗算すると、すでにdoubleが生成されます。

于 2012-07-12T09:17:44.440 に答える
4

Math.sinMath.cos度ではなくラジアンの角度で動作します。修正するには、円周率を掛けて180で割ります。

于 2012-07-12T09:17:44.627 に答える