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

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

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

Message 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)
Avatar de l’utilisateur
SPH
Messages : 4726
Inscription : mer. 09/nov./2005 9:53

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

Message par SPH »

J'aime bien 8)
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

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

Message par Kwai chang caine »

Ca nique les yeux mais c'est joli
Merci du partage 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
Ar-S
Messages : 9477
Inscription : dim. 09/oct./2005 16:51
Contact :

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

Message par Ar-S »

Petit effet plasma, j'aime :)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Huitbit
Messages : 939
Inscription : jeu. 08/déc./2005 5:19
Localisation : Guadeloupe

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

Message par Huitbit »

Hello,

On dirait des chenilles prisonnières sous une feuille de cellophane !
Elevé au MSX !
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

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

Message 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.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

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

Message 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)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
Fig
Messages : 1176
Inscription : jeu. 14/oct./2004 19:48

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

Message par Fig »

Je n'avais pas vu ce poste.
C'est vraiment très sympathique comme effet, proprement fait, Ollivier. 8)
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

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

Message 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 !
Répondre