# -*- coding: iso-8859-15 -*- """Simulazione della forza di Lorentz in un campo magnetico""" from graftarta2 import Graf from vettor3 import V3 import math def assi3d(t): t.avanti3d(400) t.avanti3d(-800) t.avanti3d(400) t.beccheggia(math.pi/2) #qq=raw_input() t.avanti3d(400) t.avanti3d(-800) t.avanti3d(400) t.beccheggia(-math.pi/2) t.imbarda(math.pi/2) #qq=raw_input() t.avanti3d(400) t.avanti3d(-800) t.avanti3d(400) t.imbarda(-math.pi/2) t=Graf("Forza di Lorentz",600,400) t.setBackground("white") t.coordinate(-500,-450,500,450) k=1e3 # fattore di scala pixel/m dt=8e-9 # è necessario un dt molto piccolo qfrattom=1.756e11 # rapporto carica massa elettrone C/kg B=V3(0,2e-6,0) # campo magnetico T v=V3(0,10000,1e5) velocita' della particella m/s ro=math.pi/6 im=-math.pi/5 t.imbardaR(im) t.rollaR(ro) assi3d(t) r=v.z/(B.y*qfrattom) Po=V3(r,0,0) #vettore posizione m t.disegnapunto3d(Po.x*k,Po.y*k,Po.z*k,"red") tempo=0 while tempo<0.00004: Fm=v.prod_vettore(B) a=qfrattom*Fm #calcolo ricorrente con i vettori accelerazione v=v+dt*a # velocita' Po=Po+dt*v # posizione if Po.x>0: t.disegnapunto3d(Po.x*k,Po.y*k,Po.z*k,"green") else: t.disegnapunto3d(Po.x*k,Po.y*k,Po.z*k,"red") tempo=tempo+dt t.getMouse() t.close()