PROGRAM PYTHON

Pygame超入門【第32回 三角関数を使ったアナログ時計③】

 

 

アナログ時計に時字を表示しよう

前回はアナログ時計に目盛りを表示しましたが、今回は目盛りの代わりに時字を表示しましょう。
時字とはアナログ時計の時間を表す数字のことです。

 

アナログ時計に時字を表示するプログラム

先に時字を表示するプログラムを提示します。

プログラムを実行すると、アナログ時計に時字が表示されます。

 

時字の座標を調整する

45、46行目で表示する時字の座標をずらしているのが、このプログラムのポイントです。
座標の終端位置にそのまま時字を表示させると、以下のようなイメージになってしまいます。

pystart32-1

これだと時字がずれてしまい見栄えが悪いので、以下のように時字の中心が終端座標の位置になるようにします。
時字の位置をフォントの幅と高さの半分のサイズでマイナスにすると、終端座標の位置が時字の中心になります。

pystart32-2

 

時字をローマ数字にしよう

上記のプログラムで定義した辞書の時字部分をローマ数字に書き替えれば、そのままローマ数字が表示されます。
また、フォントもローマ数字に似合うものに変えてみましょう。
フォントに関しては、こちらの記事を参考にしてください。
ここでは、以下のように変更しました。

pygame.font.Font(None, 32) → pygame.font.SysFont("yumincho", 32)

ローマ数字は幅を取るので、表示する時字の座標を若干円の内側にしています。(MARK = 160 → MARK = 155)
また、ローマ数字は機種依存文字なので、フォントによっては対応していない場合があります。
プログラムを実行すると、時字がローマ数字になります。

 

 

-PROGRAM, PYTHON
-,