Untitled

 avatar
unknown
plain_text
5 months ago
1.3 kB
0
Indexable
import matplotlib.pyplot as plt
import numpy as np

# Postavke za graf
fig, ax = plt.subplots(figsize=(6, 6))

# Definirajmo točke za prizmu (jednakostraničan trokut)
prizma_x = [0, 1, 0.5, 0]
prizma_y = [0, 0, np.sqrt(3)/2, 0]

# Crtanje prizme
ax.plot(prizma_x, prizma_y, 'k-', lw=2)

# Crtanje okomice na površinu prizme (točka ulaza)
ax.plot([0.5, 0.5], [0, np.sqrt(3)/2], 'k--', lw=1)  # okomica

# Ulazni kut (25°) i put snopa u prizmu
ulazni_kut = np.deg2rad(25)
lomni_kut = np.deg2rad(15.33)  # kut unutar prizme (nakon loma)

# Koordinate ulaznog snopa (kut s okomicom)
duljina_snopa = 0.5
ulazni_snop_x = [0.5 - duljina_snopa*np.sin(ulazni_kut), 0.5]
ulazni_snop_y = [0, duljina_snopa*np.cos(ulazni_kut)]

# Crtanje ulaznog snopa
ax.plot(ulazni_snop_x, ulazni_snop_y, 'r-', lw=2, label="Ulazni snop (25°)")

# Koordinate loma unutar prizme
lomni_snop_x = [0.5, 0.5 + duljina_snopa*np.sin(lomni_kut)]
lomni_snop_y = [0, duljina_snopa*np.cos(lomni_kut)]

# Crtanje snopa unutar prizme
ax.plot(lomni_snop_x, lomni_snop_y, 'b-', lw=2, label="Snop unutar prizme (15.33°)")

# Postavke grafa
ax.set_xlim(-0.2, 1.2)
ax.set_ylim(-0.2, 1.2)
ax.set_aspect('equal')
ax.set_xlabel("x")
ax.set_ylabel("y")
ax.set_title("Prikaz loma svjetlosti na prizmi")
ax.legend()
plt.grid(True)

# Prikaz grafa
plt.show()
Editor is loading...
Leave a Comment