interferenza3
// mettere 15 cifre significative
// 10) uno slider per il passo del reticolo da 100 a 10000 nm con incrementi di 10 nm
passo=Slider[100E-9, 10000E-9, 10E-9]
// 20) due slider per la posizione dell'osservatore (in metri) "
Xoss=Slider[-10,10, .001]
Yoss=Slider[-10,10, .001]
// 30) Il punto che rappresenta l'osservatore
Oss:(Xoss,Yoss)
// 40) poniamo O in (Xoss,10)
Yoss=10
// 50) uno slider per il numero di sorgenti
NS=Slider[1,100,1]
// 60) le sorgenti sull'asse x
sorgenti=Successione[(i*passo,0), i, 0, NS-1]
// 70) le congiungenti all'osservatore
congiungenti=successione[ segmento[elemento[sorgenti,k],Oss] ,k,0,NS-1]
// 80) Origine:
O:(0,0)
// 90) retta r1
sr1= semiretta(O,Oss)
// 100) le perpendicolari (alle congiungenti) passanti per le sorgenti
perpendicolari=successione[ perpendicolare[elemento[sorgenti,k],r1] ,k,1,NS]
// 110) colorare di rosso le sorgenti, verde viso le congiungenti, blu le perdendicolari
// 120) lambda
lambda=Slider[100E-9,700E-9,10E-9]
// 130) NC : numero di circonferenze
NC=Slider[1,100,1]
// 140) NC circonferenze con passo lambda centrate nell'origine
circonferenze=Successione[Circonferenza[O, k*lambda], k, 1, NC, 1]
// 150) NC circonferenze con passo lambda centrate in ogni sorgente
molteCirconferenze=Successione[Successione[Circonferenza[elemento[sorgenti,j], k*lambda], k, 1, NC, 1], j, 1, NS]]
// 160) la sorgente ennesima
Sn=Slider[1,100,1]
// 170) NC circonferenze2 con passo lambda centrate nella sorgente Sn
circonferenze2=Successione[Circonferenza[elemento[sorgenti,Sn], k*lambda], k, 1, NC, 1]
// 180) alfa_t per simulare lo scorrere del tempo sulla fase
alfa_t=Slider[0, 2*pi, pi/100]
// 185) Ampiezza A
A=Slider[1,10,1]
// 190) segnale dovuto alla sorgente 1
segnale1=A*sin((2*pi/lambda)*Distanza[Oss, Elemento[sorgenti, 1]]-alfa_t)
Segnale1=(x(Oss),y(Oss),segnale1)
// visualizzare 3D
// mettere stile punto piccolo per Segnale 1
// 200) singoli segnali
segnali=Successione[A*sin((2*pi/lambda)*Distanza[Oss, Elemento[sorgenti, j]]-alfa_t), j, 1, NS]
// 210) somma dei segnali dovuti alle NS sorgenti
sommaSegnali=Somma[segnali]
// 220) punto che rappresenta la somma dei segnali
Segnale=(x(Oss),y(Oss),sommaSegnali)
// 230) Traccia attiva a segnale