時計の作成(java)

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
th

時計の作成(java)

#1

投稿記事 by th » 12年前

アナログ時計を作成していて
ちょっと意味の分からない処理になってしまったので
質問させていただきます
java言語でGrahics2Dを使っているのですけど
時間を取得して(完璧に取得されている)
その時間を使って針を動かす処理を書いているのですがうまく動きません

具体的には
秒針を6度ずつ回していき
分針なら1分間に6度
時針なら一時間に30度
と回していっていく予定です
今は秒速と分速を動かしているのですが
あきらかに針の進み方がおかしいです(15秒のはずなのに12回くらいしか動いてません)
プログラムの一部を書きますので
どこが悪いのかよかったら教えてください

コード:

rad = 6*second;   (second)には秒数が入っていて毎秒更新されていることは確認しました)
        g2.rotate(-rad, cx, cy);  (cx,cy)は画面の中心になります
 
        g2.drawString(str,cx,cy);
      
        
        rad= 6*minute;  //分針(minuteには分が入っています)
        g2.rotate(-rad, cx, cy); 
        g2.drawString(str1,cx,cy);
秒針が明らかに一分で60回動いてません

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: 時計の作成(java)

#2

投稿記事 by みけCAT » 12年前

移動する回数が足りないのは、タイマーの不都合ではないでしょうか?
角度はラジアンで指定するべきなのではないでしょうか?[要出典]
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
へにっくす
記事: 634
登録日時: 13年前
住所: 東京都

Re: 時計の作成(java)

#3

投稿記事 by へにっくす » 12年前

Class Graphics2D#rotate
引数の説明をよく読みましょう。ラジアン指定です。
ラジアンとは、180度をπ(≒3.14)であらわした角度の単位です。
弧度法(ラジアン)
written by へにっくす

閉鎖

“C言語何でも質問掲示板” へ戻る