37 lines
929 B
Python
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() |