Ecran matraqué
Publié : lun. 24/oct./2005 22:26
Utilisez une image 1280*1024 en jpg en c:/01.jpg
Code : Tout sélectionner
InitSprite()
InitSprite3D()
InitMouse()
InitKeyboard()
UseJPEGImageDecoder()
OpenScreen(1280, 1024,32,"")
LoadSprite(0,"c:/01.jpg")
DisplaySprite(0,0,0)
FlipBuffers()
DisplaySprite(0,0,0)
FlipBuffers()
Dim p(1280*2,1024*2)
StartDrawing(ScreenOutput())
For i=0 To 1280
For u=0 To 1024
p(640+i,512+u)=Point(i,u)
Next
Next
StopDrawing()
FreeSprite(0)
gro=250
Dim zoom0.f(gro)
Dim trans(gro)
zoom0(0)=0
gro2.f=0.5
For i=0 To gro
zoom0(i)=gro2
trans(i)=gro
gro2-0.0020
Next
Dim zx(gro,gro)
Dim zy(gro,gro)
For i=0 To gro
For u=0 To gro
x0=Sqr(i*i+u*u)
If x0<=gro
zx(i,u)=i*(1+zoom0(x0))
zy(i,u)=u*(1+zoom0(x0))
Else
If trans(i)=gro
trans(i)=u-1
EndIf
EndIf
Next
Next
Repeat
xx=Random(1280)
yy=Random(1024)
For u=1 To gro
For i=1 To trans(u)
zz.f=1+(251-Sqr(i*i+u*u))/240
c=p(639+xx+zx(i,u),511+yy+zy(i,u))
rr=Red(c)/zz
vv=Green(c)/zz
bb=Blue(c)/zz
c=RGB(rr,vv,bb)
P(639+xx+i,511+yy+u)=c
c=p(640+xx-zx(i,u),512+yy-zy(i,u))
rr=Red(c)/zz
vv=Green(c)/zz
bb=Blue(c)/zz
c=RGB(rr,vv,bb)
P(640+xx-i,512+yy-u)=c
c=p(640+xx-zx(i,u),511+yy+zy(i,u))
rr=Red(c)/zz
vv=Green(c)/zz
bb=Blue(c)/zz
c=RGB(rr,vv,bb)
P(640+xx-i,511+yy+u)=c
c=p(639+xx+zx(i,u),512+yy-zy(i,u))
rr=Red(c)/zz
vv=Green(c)/zz
bb=Blue(c)/zz
c=RGB(rr,vv,bb)
P(639+xx+i,512+yy-u)=c
Next
Next
StartDrawing(ScreenOutput())
For i=0 To 1279
For u=0 To 1023
Plot (i,u,p(640+i,512+u))
Next
Next
StopDrawing()
FlipBuffers()
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Escape)
End
EndIf
ForEver