Untitled
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