[Python] Uhr, die die Farbe ändert (Animation)

Einführung

Erstellt einen Sekundenzeiger (Uhr), der sich jede Sekunde dreht und in 60 Sekunden eine Umdrehung macht. Nur den Sekundenzeiger zu zeichnen ist langweilig, daher sollte sich die Farbe der Uhr allmählich von blau nach rot im Bereich von 0 bis 60 [s] ändern. Speichern Sie es schließlich als GIF und Sie sind fertig.

Verwenden Sie die Python-Bibliothek zum Erstellen von Animationen.

Animation abgeschlossen

20191204second_hand.gif

Code

second_hand.py


%matplotlib nbagg

import matplotlib.pyplot as plt
import matplotlib.animation as animation
import matplotlib.patches as pat

fig = plt.figure()
ax = plt.subplot()

def clock(i):
    circle = [ax.add_patch(pat.Wedge(center=(0, 0), r=1, color=[0+i/60,0,1-i/60], theta1 = 95-i*(360/60), theta2 = 85-i*(360/60)))]
    #center: xy-Koordinaten zentrieren,r: Keilradius,Farbe: Farbspezifikation in RGB(Jede Farbe 0~1),Theta: Geben Sie den Keilwinkel an
    #Beachten Sie, dass wir Kreise auflisten. Dies ist so, dass es später zu Bildern hinzugefügt werden kann.
    return circle

#Fügen Sie der Liste imgs eine Uhr für jede Sekunde hinzu.
imgs=[]
for i in range(60):
    imgs.append(clock(i))
    
ani = animation.ArtistAnimation(fig, imgs, interval=1000, repeat=True)
plt.axis("scaled")
plt.show()

ani.save("second_hand.gif", writer="imagemagick")#Als GIF speichern

Umgebung

macOS Catalina jupyter-notebook

Recommended Posts

[Python] Uhr, die die Farbe ändert (Animation)
Änderungen von Python 3.0 zu Python 3.5
Änderungen von Python 2 zu Python 3.0
[ev3dev × Python] Farbsensor
Mixer, Python, Wendeltreppe, Farbe
[Python] Anpassen der Farbleiste
Blender 2.9, Python, hexadezimale Farbspezifikation
Beachten Sie, dass es Python 3 unterstützt
Ich habe die Bewegung Python3 ausprobiert, die die Richtung im Koordinatensystem ändert