-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNumber-draw-matplotlib.py
43 lines (37 loc) · 1.73 KB
/
Number-draw-matplotlib.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import matplotlib.pyplot as plt # A matplotlib könyvtár importálása
import math # Matematikai számításokhoz
# Számjegyekhez tartozó irányok
iranyok = {
"2": 270, "4": 180, "6": 0, "8": 90,
"1": 225, "3": 315, "7": 135, "9": 45
}
# Adatok inicializálása
x_koord, y_koord = [0], [0] # Kezdő koordináták
jelenlegi_x, jelenlegi_y = 0, 0 # Aktuális pozíció
lepeshossz = 10 # Lépéshossz minden irányban
# Felhasználói bemenet
max_szam = int(input("Adja meg, meddig rajzoljam a számokat: ")) # Határ bekérése
# Rajzterület inicializálása
abra, tengely = plt.subplots()
tengely.set_aspect('equal') # Egyenlő arányok
plt.axis('off') # A tengelyek kikapcsolása
(vonal,) = tengely.plot([], [], 'bo-', lw=1, markersize=2) # Üres vonal
# Animáció kézi vezérlése
for szam in range(max_szam):
print(f"Generálás folyamatban: {szam}") # Konzol állapotjelentés
for karakter in str(szam): # Minden számjegy feldolgozása
irany = iranyok.get(karakter, None) # Irány lekérése
if irany is not None: # Ha van irány
dx = lepeshossz * round(math.cos(math.radians(irany)), 2)
dy = lepeshossz * round(math.sin(math.radians(irany)), 2)
jelenlegi_x += dx
jelenlegi_y += dy
x_koord.append(jelenlegi_x) # Új x koordináta hozzáadása
y_koord.append(jelenlegi_y) # Új y koordináta hozzáadása
# A vonal frissítése
vonal.set_data(x_koord, y_koord)
# Tengelyek dinamikus frissítése
tengely.set_xlim(min(x_koord) - 10, max(x_koord) + 10)
tengely.set_ylim(min(y_koord) - 10, max(y_koord) + 10)
plt.pause(0.01) # Kis szünet a valós idejű frissítéshez
plt.show() # Az ábra végleges megjelenítése