mathematik2/matrix/projektion.py

37 lines
929 B
Python

#%%
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure(figsize=(9, 7))
ax = fig.add_subplot(111, projection='3d')
# Vektoren definieren
vektoren = {
r'$\vec{a}$': (2, -1, 2),
r'$P \cdot \vec{a}$': (2, -1, 0)
}
farben = ['#2196F3', '#FF5722']
for (name, wert), farbe in zip(vektoren.items(), farben):
ax.quiver(0, 0, 0, *wert, color=farbe, lw=2.5, arrow_length_ratio=0.1)
# Beschriftung am Pfeilende
ax.text(wert[0] * 1.05, wert[1] * 1., wert[2] + 0.1,
name, fontsize=13, color=farbe, fontweight='bold')
# Projektion von a auf die xy-Ebene gestrichelt
ax.plot([2, 2], [-1, -1], [0, 2], 'k--', lw=1, alpha=0.5)
# Achsen
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
ax.set_title('Projektion', fontsize=14)
# Ansichtswinkel
ax.view_init(elev=20, azim=45)
plt.tight_layout()
plt.savefig('vektoren_3d.png', dpi=150)
plt.show()