-------------
import matplotlib.pyplot as plt
import matplotlib.patches as patches
import numpy as np
def rajzol_f1_auto():
# Ábra és koordinátarendszer inicializálása
fig, ax = plt.subplots(figsize=(14, 6))
ax.set_facecolor('#0d1117') # Sötét háttér a sci-fi hatáshoz
# 1. Kasztni és alsó aerodinamikai elemek (Sidepods & Floor)
kasztni = patches.Polygon([[ -5, 0.8], [2, 1.2], [6, 1.2], [7, 0.5], [ -5, 0.5]], closed=True, color='#c92a2a', zorder=3)
padlolemez = patches.Polygon([[ -6, 0.2], [7.5, 0.2], [7.5, 0.5], [-6, 0.5]], closed=True, color='#1a1a1a', zorder=2)
orrunk = patches.Polygon([[ -5, 0.8], [ -7, 0.5], [ -5, 0.5]], closed=True, color='#c92a2a', zorder=3)
ax.add_patch(kasztni)
ax.add_patch(padlolemez)
ax.add_patch(orrunk)
# 2. Aerodinamikai légterelők (Orr-kúp szárnyak és terelőlapok)
# Első szárny elemek
elso_szarny_fo = patches.Polygon([[-7.5, 0.1], [-7.5, 0.8], [-7.0, 0.8], [-6.8, 0.1]], closed=True, color='#e0e0e0', zorder=3)
elso_szarny_veg = patches.Polygon([[-7.5, 0.1], [-7.2, 1.3], [-6.8, 1.3], [-6.8, 0.1]], closed=True, color='#2b8a3e', zorder=3)
ax.add_patch(elso_szarny_fo)
ax.add_patch(elso_szarny_veg)
# Bargeboard és oldalsó légterelők (aerodinamikai elemek)
bargeboard1 = patches.Polygon([[-1, 0.5], [-0.5, 1.8], [0, 1.8], [-0.2, 0.5]], closed=True, color='#2b8a3e', zorder=3)
bargeboard2 = patches.Polygon([[0.5, 0.5], [0.8, 1.6], [1.2, 1.6], [1.3, 0.5]], closed=True, color='#fab005', zorder=3)
ax.add_patch(bargeboard1)
ax.add_patch(bargeboard2)
# 3. Kerekek és felfüggesztés (Gumiabroncsok)
elso_gumi = patches.Circle((-5, 0.2), 0.6, color='#212529', zorder=4)
elso_felni = patches.Circle((-5, 0.2), 0.35, color='#adb5bd', zorder=5)
hatso_gumi = patches.Circle((5, 0.2), 0.6, color='#212529', zorder=4)
hatso_felni = patches.Circle((5, 0.2), 0.35, color='#adb5bd', zorder=5)
ax.add_patch(elso_gumi)
ax.add_patch(elso_felni)
ax.add_patch(hatso_gumi)
ax.add_patch(hatso_felni)
# Felfüggesztés háromszögek
felfuggesztes_elso = patches.Polygon([[-5, 0.8], [-4.5, 0.5], [-5.5, 0.5]], closed=True, color='#6c757d', zorder=3)
felfuggesztes_hatso = patches.Polygon([[5, 0.8], [4.5, 0.5], [5.5, 0.5]], closed=True, color='#6c757d', zorder=3)
ax.add_patch(felfuggesztes_elso)
ax.add_patch(felfuggesztes_hatso)
# 4. Hátsó szárny (Rear Wing)
hatso_szarny_fo = patches.Polygon([[6.5, 0.5], [6.5, 2.8], [7.5, 2.8], [7.5, 0.5]], closed=True, color='#e0e0e0', zorder=3)
hatso_szarny_veglap = patches.Polygon([[6.8, 0.2], [6.6, 3.1], [7.6, 3.1], [7.4, 0.2]], closed=True, color='#c92a2a', zorder=2)
allvany = patches.Polygon([[7.0, 0.5], [7.0, 1.8], [7.2, 1.8], [7.2, 0.5]], closed=True, color='#212529', zorder=2)
ax.add_patch(hatso_szarny_fo)
ax.add_patch(hatso_szarny_veglap)
ax.add_patch(allvany)
# 5. Halo (Fejvédő keret)
halo = patches.Polygon([[-1, 1.5], [0.5, 1.5], [0.1, 1.2], [-0.5, 1.2]], closed=True, color='#adb5bd', zorder=4)
ax.add_patch(halo)
# 6. Matrica-minták és szponzorcsíkok
# Cápauszony a motorborításon (Shark fin)
shark_fin = patches.Polygon([[2.2, 1.2], [4.5, 2.2], [4.8, 1.2]], closed=True, color='#fab005', zorder=3)
ax.add_patch(shark_fin)
# Oldaldoboz matrica (Vonalak)
matrica1 = patches.Polygon([[ -3, 0.7], [ -2, 1.1], [0, 1.1], [-1, 0.7]], closed=True, color='#e0e0e0', zorder=3)
matrica2 = patches.Polygon([[ -3.5, 0.6], [ -2.5, 1.0], [ -1.5, 1.0], [-2.2, 0.6]], closed=True, color='#ffec99', zorder=3)
ax.add_patch(matrica1)
ax.add_patch(matrica2)
# 7. Matricák (Feliratok és rajtszám)
ax.text(-5.5, 0.8, '1', fontsize=36, fontweight='bold', color='white', zorder=5) # Rajtszám
ax.text(-2, 0.85, 'PIRELLI', fontsize=10, fontweight='bold', color='black', zorder=4, rotation=10)
ax.text(2, 0.85, 'SHELL', fontsize=12, fontweight='bold', color='white', zorder=4)
# 8. Légáramlat-vonalak (Aerodinamikai szimuláció hullámokkal)
x_flow = np.linspace(-9, 8, 100)
# Áramlási vonalak ábrázolása Matplotlib-pel
for y_offset in np.linspace(0.5, 3.0, 6):
ax.plot(x_flow, y_offset + 0.1 * np.sin(x_flow), color='#00d2be', alpha=0.5, linewidth=2, zorder=1)
# Térkép beállítások (Ne mutassa a tengelyeket)
ax.set_xlim(-10, 9)
ax.set_ylim(-0.5, 4)
ax.axis('off')
plt.title("Formula 1 - Koncepció és Aerodinamika", color='white', fontsize=16)
plt.show()
rajzol_f1_auto()
Nincsenek megjegyzések:
Megjegyzés küldése