Page 1 sur 1

Boîte beurrée de Lustucru à perforation quadrillée

Publié : sam. 07/juil./2018 0:33
par Ollivier

Code : Tout sélectionner

;***************************************************************************************************************************
InitSprite()
InitKeyboard()
InitMouse()
ExamineDesktops()
dw = DesktopWidth(0)
dh = DesktopHeight(0)
dd = DesktopDepth(0)
dxmax = dw - 1
dymax = dh - 1
OpenScreen(dw, dh, dd, "")
#zw = 13
#zh = 8
#za = #zw * #zh
#zmax = #za - 1
r.D
b.D
t.D = 20.0
z = 0
lw = 2.0 * #PI * t
lh = lw
Global Dim x(#zw - 1, #zh - 1, 3, 1)
Global Dim y(#zw - 1, #zh - 1, 3, 1)
Global Dim aa.D(#zw - 1, #zh - 1)
Global Dim a.D(#zw - 1, #zh - 1)
Global Dim r.D(#zw - 1, #zh - 1)
diag12.D = Sqr(lw * lw + lh * lh) / 2.0
For h = 1 To #zh
        For w = 1 To #zw
                aa(w - 1, h - 1) = (Random(628) - 314) / 10000.0
                a(w - 1, h - 1) = (Random(628) - 314) / 100.0
                r(w - 1, h - 1) = 16 + Random(31)
                x(w - 1, h - 1, 0, 0) = (w - 1) * lw
                y(w - 1, h - 1, 0, 0) = (h - 1) * lh
                x(w - 1, h - 1, 1, 0) = (w - 1) * lw + (lw - 0)
                y(w - 1, h - 1, 1, 0) = (h - 1) * lh 
                x(w - 1, h - 1, 2, 0) = (w - 1) * lw + (lw - 0)
                y(w - 1, h - 1, 2, 0) = (h - 1) * lh + (lh - 0)
                x(w - 1, h - 1, 3, 0) = (w - 1) * lw
                y(w - 1, h - 1, 3, 0) = (h - 1) * lh + (lh - 0)
        Next
Next
CreateSprite(z, lw, lh, #PB_Sprite_AlphaBlending)
If StartDrawing(SpriteOutput(z) )
        For y = 0 To lh - 1
                For x = 0 To lw - 1
                        r = diag12 * Sqr(Pow(x - (lw / 2.0), 2.0) + Pow(y - (lh / 2.0), 2.0) ) / 63.0
                        b = 127 + Cos(x / t) * Cos(y / t) * 127
                        If r > b
                                r = b
                        EndIf
                        c = RGB(r, 0, b)
                        Plot(x, y, c)
                Next
        Next        
        StopDrawing()        
EndIf

diag2.D = Sqr(dw * dw + dh * dh)
diag.D = diag2 / 2.0
a2.D = ATan2(dw, dh)
a1.D = 0.0 - a2
a3.D = #PI - a2
a4.D = #PI - a1
aa.D
aaa.D
vt.D = 0.5
cx = 0 - lw / 2
cy = 0 - lh / 2
Repeat
        Delay(1)
        ExamineKeyboard()
        ExamineMouse()
        an.D + 0.01
        For h = 1 To #zh - 1
                For w = 1 To #zw - 1
                        aa(w, h) + ((Random(628) - 314) / 100000)
                        a(w, h) + Sin(aa(w, h) ) * vt
                Next
        Next
        For h = 0 To #zh - 1
                For w = 0 To #zw - 1
                        x(w, h, 0, 1) = Cos(a(w, h) ) * r(w, h)
                        y(w, h, 0, 1) = Sin(a(w, h) ) * r(w, h)
                        If w < #zw - 1
                                x(w, h, 1, 1) = Cos(a(w + 1, h) ) * r(w + 1, h) 
                                y(w, h, 1, 1) = Sin(a(w + 1, h) ) * r(w + 1, h)
                        EndIf
                        If h < #zh - 1
                                If w < #zw - 1
                                        x(w, h, 2, 1) = Cos(a(w + 1, h + 1) ) * r(w + 1, h + 1) 
                                        y(w, h, 2, 1) = Sin(a(w + 1, h + 1) ) * r(w + 1, h + 1) 
                                EndIf
                                x(w, h, 3, 1) = Cos(a(w, h + 1) ) * r(w, h + 1) 
                                y(w, h, 3, 1) = Sin(a(w, h + 1) ) * r(w, h + 1) 
                        EndIf
                Next
        Next
        
        For h = 0 To #zh - 1
                For w = 0 To #zw - 1
                        ;                        DisplaySprite(0, x(w, h, 0), y(w, h, 0) )
                        DisplaySprite(0, 0, 0)
                        TransformSprite(0, x(w, h, 0, 0) + x(w, h, 0, 1) + cx,
                                        y(w, h, 0, 0) + y(w, h, 0, 1) + cy, 
                                        x(w, h, 1, 0) + x(w, h, 1, 1) + cx, 
                                        y(w, h, 1, 0) + y(w, h, 1, 1) + cy, 
                                        x(w, h, 2, 0) + x(w, h, 2, 1) + cx, 
                                        y(w, h, 2, 0) + y(w, h, 2, 1) + cy, 
                                        x(w, h, 3, 0) + x(w, h, 3, 1) + cx, 
                                        y(w, h, 3, 0) + y(w, h, 3, 1) + cy)
                Next
        Next
        FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)

Re: Boîte beurrée de Lustucru à perforation quadrillée

Publié : sam. 07/juil./2018 6:46
par SPH
J'aime bien 8)

Re: Boîte beurrée de Lustucru à perforation quadrillée

Publié : sam. 07/juil./2018 9:47
par Kwai chang caine
Ca nique les yeux mais c'est joli
Merci du partage 8)

Re: Boîte beurrée de Lustucru à perforation quadrillée

Publié : sam. 07/juil./2018 9:59
par Ar-S
Petit effet plasma, j'aime :)

Re: Boîte beurrée de Lustucru à perforation quadrillée

Publié : dim. 08/juil./2018 0:58
par Huitbit
Hello,

On dirait des chenilles prisonnières sous une feuille de cellophane !

Re: Boîte beurrée de Lustucru à perforation quadrillée

Publié : mar. 10/juil./2018 21:58
par Ollivier
Salut les gars,

merci pour vos commentaires. Un petit coucou à Huitbit qu'on ne voit pas souvent mais qui doit être occupé à bloc.

En fait (Kcc), ça ne "nique" pas les yeux. C'est une illusion d'optique qui te fait croire que ça "nique" les yeux.

Cette illusion est dûe au cumul du flou, d'une image qui se répète et de la présence de cyan.

Le cerveau interprète la répétition par un soi-disant mauvais écart angulaire des yeux (le cerveau considère à tort que l'écart est fait pour la vision lointaine). Et le cerveau interprète le flou comme un mauvais état focal de la pupille : pareil le cerveau considère un focus en vision lointaine, parce qu'il considère le cyan comme le ciel, sans même que le mot "ciel" ne résonne dans la tête.

Alors qu'en réalité, rien n'est déréglé.

Résultat : le cerveau cherche constamment quelquechose entre l'écran et les yeux.

Re: Boîte beurrée de Lustucru à perforation quadrillée

Publié : mer. 11/juil./2018 8:59
par Kwai chang caine
Et ben, même pas j'aurais cru que mon cerveau puisse penser tout ça..... en plus rien qu'en regardant une animation 8O
Il ferait mieux de savoir penser pour m'aider quand je le lui demande, plutôt que penser à des conneries, fausses de surcroit, alors même que je lui ai rien demandé :?
Merci de ton explication 8)

Re: Boîte beurrée de Lustucru à perforation quadrillée

Publié : dim. 12/août/2018 19:20
par Fig
Je n'avais pas vu ce poste.
C'est vraiment très sympathique comme effet, proprement fait, Ollivier. 8)

Re: Boîte beurrée de Lustucru à perforation quadrillée

Publié : mar. 14/août/2018 1:32
par Ollivier
Content que ça plaise. A la base, c'était sensé représenter le continuum espace-temps. Puis, comme ça m'a gonflé, et que je touche peu les ordis à mon grand regret, c'est resté prendre les toiles d'araignée.

J'en loope beaucoup aussi de tes dons. Il faudra que je me rattrape tôt ou tard à tester et commenter les codes ludiques et originaux !