0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

💫 デスクトップで動く『へたれ時計』をPythonで作ってみた

Last updated at Posted at 2025-10-19

🕐 はじめに

Pythonとライブコーディングの学習を兼ねて、
ちょっと変わったデスクトップ時計を作ってみました。

その名も――

💚 『へたれ時計』

💡 コンセプト

この時計は、ただの時計ではありません。

針が“重力”に負けて下を向いてしまう

クリックすると数秒だけ復活して立ち上がる

そしてまた、ゆっくりへたれて垂れ下がる

まるで人間のように、頑張ったり、へたれたり。
そんな“感情を持った時計”です。

「へたれてもいい。大切なのは、また立ち上がること。」

⚙️ 開発環境
項目 内容
OS Windows 10 / 11
言語 Python 3.11
GUI Tkinter
画像処理 Pillow(PIL)
効果音 winsound(クリック音)
配布形式 PyInstaller(exe化対応)
🎨 見た目と特徴

背景は丸いガラス風PNG(へたれ様.png)

針はしなりながら重力に従ってへたれる

クリックで一時的に“復活”

上部に緑色ポップ体のデジタル時計

背景透過&右クリックでドラッグ移動可能

💻 コード解説(抜粋)

以下では、「へたれる動き」を生み出す部分を紹介します。
(※フルコードは最後にまとめて掲載)

🧭 重力で針が垂れ下がる処理

針の角度と速度を更新して、
「重力」「バネのような復元力」「空気抵抗」を再現しています。

for attr in ['hour', 'min', 'sec']:
angle = getattr(self, f"{attr}_angle")
vel = getattr(self, f"{attr}_velocity")
diff = 90 - angle
acc = diff * 0.04 # バネ係数(引き戻す力)
vel += acc
vel *= 0.975 # 減衰(空気抵抗)
angle += vel
setattr(self, f"{attr}_angle", angle)
setattr(self, f"{attr}_velocity", vel)

⏳放っておくと針は自然に“真下”を向きます。
数学的にはシンプルな運動方程式で、感情的には「へたり」です。

⚡ クリックで一時的に復活

クリックすると針が正しい時刻に戻り、
5秒ほど元気に動いてからまたへたれます。

def on_click(self, event):
self.clicked = True
self.recover_timer = 300 # 約5秒
winsound.PlaySound("click.wav", winsound.SND_ASYNC)

「やる気スイッチ」みたいな挙動。
click.wav があると “カチッ” と音が鳴って気持ちいいです。

🌈 針の“しなり”を再現

針の中央点を少しズラして描画し、柔らかく曲がって見せています。

def flex_coords(self, angle, length, bend_factor=0.1):
rad = math.radians(angle)
x_end = self.center + length * math.cos(rad)
y_end = self.center + length * math.sin(rad)
nx = math.sin(rad)
ny = -math.cos(rad)
curve = bend_factor * (abs(90 - angle) / 90) * 28
x_mid = (self.center + x_end)/2 + nx * curve
y_mid = (self.center + y_end)/2 + ny * curve
return [self.center, self.center, x_mid, y_mid, x_end, y_end]

🪶針が下がるとき、ほんの少し“たわむ”ように見えるのがポイント。

💚 デジタル時計(ポップ体+緑)

Windows標準フォント「HG創英角ポップ体」を使用して、
発光感のある緑文字を表示します。

self.digital_label = self.canvas.create_text(
self.center, self.center - 60,
text="--:--:--",
fill="#00cc44",
font=("HG創英角ポップ体", 18, "bold")
)

💾 exe化する方法(Windows)

Pythonを入れていないPCでも動かすには以下👇

pyinstaller --noconsole --onefile --add-data "へたれ様.png;." --add-data "click.wav;." GravityClock.py

dist フォルダに
GravityClock.exe が生成されます。
これを実行すると、デスクトップに“へたれ時計”が浮かび上がります。

🧱 実行イメージ

📸(ここにGIFやスクショを貼るとQiitaのTOPで映えます)

背景の中で針がふわりと動き、
時にはへたり、時には立ち上がる。

☕ まとめ

この時計は、Pythonとライブコーディングの練習として始めました。
ですが作るうちに、ただの時計以上の意味を持つようになりました。

正確さよりも、人間らしさ。
へたれても、また立ち上がる。

へたれ時計.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?