Simulation: Punktlyskilde med varierende vinkel og fast zoom.
Pro punkt
; IDL Version 3.0.0
; Date: 12/4-95.
; Michael Cramer Andersen
; Simulering af videofeedback.
; Beskrivelse: Fast punktlyskilde ved varierende vinkel og konstant zoom.
; Parametre:
B=0.90 ; Kameraets nedblaenden.
L=0.20 ; Intensitetsfaktor (0.2 svarer til at 20% af lyset er tilbage).
z=0.96 ; Zoomfaktor (1.05 svarer til 5% zoom i radial retning).
; Rotationsvinkel v, kontrolleres undervejs.
; Konstanter:
pi = 3.1415926535
dim=101 ; Dimensionen af billedet (liniebredde=linieantal)
d50=dim/2 ; 50% af Billedets bredde
; Initialisering af arrays:
;--------------------------
Init=Make_Array(dim,dim) ; 2D-array med dimxdim punkter
P_0=Init & P_1=Init & P_2=Init ; 3 fortloebende billeder
Screen=Init
Cam=Init
Punkt=Init
Punkt(d50,90)=255; Startbillede.
!P.Multi=[0,5,4]; Klargoer skaerm med 5 plot i 4 raekker.
set_plot,'ps'
device, filename="punkt1.ps"
device
Tek_color; load discrete colors for contours.
For r=0,19 do begin; Loop1 - gennemloeb vinkelomraade.
v=r*5+0; Saettes til +100 ved 2. koersel (store vinkler).
P_0=Punkt & P_1=Punkt & P_2=Punkt ; Startbilleder t= -2, -1, 0.
Screen=Punkt
Cam=Init; Nulstil.
For t=0,99 do begin; Loop2 - iterer n gange med fast v og z.
Cam=Rot(Screen,v,z,missing=0,interp=1) ; Roteret billede.
Cam=Punkt +Cam +L*P_0 +L*L*P_1 +L*L*L*P_2 ; Eftergloed.
Cam=B*Cam ; Nedblaenden (f.eks. 90%).
Cam(*,*)=(Cam(*,*)<255) ; Afklipning eller maetning.
P_2=P_1 & P_1=P_0 & P_0=Screen & Screen=Cam ; Billed-omordning.
end
ts_v=string(v,format='(I3)') ; Grafoverskrifter.
ts_z=string(z,format='(G4.2)')
ts_n=string(t,format='(I3)')
titel='v='+ts_v+', z='+ts_z+', n='+ts_n
contour,Screen,/FILL, NLEVELS=5, C_COLOR=INDGEN(5)+2, title=titel; Udskrivning
end
device,/close
end