Weihnachtsbaum mit Python erstellt

Motivation

Mit Mathematik lässt sich auch Kunst gestalten. In diesem Beitrag werde ich zeigen, wie ein stilisierter Weihnachtsbaum in Python erstellt werden kann.

z \in [0\ldots 3]
x = -\sin\left(k_{\mathrm{x}}\cdot z + \varphi\right)\cdot\dfrac{\left(\max(z)-z\right)^{\alpha}}{\max(z)}
y = \cos\left(k_{\mathrm{y}}\cdot z + \varphi\right)\cdot\dfrac{\left(\max(z)-z\right)^{\alpha}}{\max(z)}
Stilisierter Weihnachtsbaum mit Python erstellt

Python-Quellcode zur Darstellung des Weihnachtsbaums

Schritt 1: Benötigte Pakete laden

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

Schritt 2: Variablen definieren

farbe_tanne = [0, 0.6, 0]
farbe_hintergrund = [1, 1, 1]
farbe_stern = [1, 0, 0]

Schritt 3: Funktion definieren

Der Weihnachtsbaum ist wird als eine zulaufende Spirale dargestellt. Die z-Koordinate zeigt nach oben.

z = np.linspace(0, 3, N_tanne, endpoint=True)  # Z-Achse
x = -np.sin(2 * np.pi * 2 * z - np.pi * 1 / 10) * (max(z) - z) ** 1.4 / max(z)  # X-Achse
y = np.cos(2 * np.pi * 2 * z - np.pi * 1 / 10) * (max(z) - z) ** 1.4 / max(z)  # Y-Achse

Schritt 4: Grafische Ausgabe der Funktion

fig = plt.figure(1, figsize=(15 / 2.54, 15 / 2.54))
ax = fig.gca(projection='3d')
ax.set_aspect('equal')

ax.plot(x, y, z + 0.1, color=[0, 0.5, 0], lw=3)  # Zulaufende Spirale
ax.scatter(0, 0, max(z) * 1.1, zdir='z', c=farbe_stern, marker='*', s=250)  # Stern
ax.view_init(15, 0)
plt.show()