Page 1 sur 1

Souvenirs analogiques...

Publié : ven. 17/juin/2022 15:16
par Ollivier
Vous en avez marre de la perfection ?
Marre du numérique ?
Marre des images qui se freezent quand ça capte mal ?
Vous êtes nostalgique de cette vieille époque ?
Quand l'antenne rateau sur votre téléviseur cathodique était un véritable joystick radio-fréquence !
Quand "rien" de "ça capte rien", c'était quelquechose, ça signifiait des heures magique à guider l'antenne pour capter les chiffres et les lettres, l'école des fans ou autre Santa Barbara.
Cette époque vous manque ?
Le programme suivant est fait pour vous !

Code : Tout sélectionner

Structure main   
    w.I[1]
    h.I[1]
    screenSprite.I
    *video
    angle.F
EndStructure

Define *this.main = AllocateMemory(SizeOf(main) )
With *this
    InitSprite()
    InitKeyboard()
    InitMouse()
    ExamineDesktops()
    \w[0] = DesktopWidth(0)
    \h[0] = DesktopHeight(0)
    OpenScreen(\w[0], \h[0], 32, "", #PB_Screen_SmartSynchronization, DesktopFrequency(0) )
    \screenSprite = CreateSprite(#PB_Any, 320, 200, #PB_Sprite_AlphaBlending)
    ZoomSprite(\screenSprite, \w[0] * 2, \h[0] * 2)
    SpriteQuality(1)
    \angle = 0.0
    Repeat
        t0 = t
        t = ElapsedMilliseconds()
        delta = 16 - (t - t0) 
        If delta < 1
            delta = 1
        EndIf
        If delta > 17
            delta = 17
        EndIf
        Delay(delta)
        t = ElapsedMilliseconds()
        ExamineKeyboard()
        If KeyboardPushed(#PB_Key_Escape)
            End
        EndIf
        If StartDrawing(SpriteOutput(\screenSprite) )
            \video = DrawingBuffer()
            For i = 0 To 63999
                c = 128 + Sin(t / 10000 + i / t) * 127 | $FF000000
                PokeL(\video + i << 2, c)
            Next
            StopDrawing()
        EndIf
        \angle = Sin(t / 1000)
        RotateSprite(\screenSprite, \angle, #PB_Relative)
        DisplayTransparentSprite(\screenSprite, 0 - \w[0] / 2, 0 - \h[0] / 2)
        FlipBuffers()
    ForEver    
EndWith
Et signez la pétition pour que les fabricants de TV rajoutent ce très succint programme quand ça ne capte plus la TNT !

Re: Souvenirs analogiques...

Publié : ven. 17/juin/2022 16:17
par TazNormand
Salut Ollivier

Marrant, on se croirait revenu à l'époque des PurePunchs

Re: Souvenirs analogiques...

Publié : dim. 19/juin/2022 16:57
par Ollivier
Bonjour taz, pas trop le temps... Allez, un aut'... Quat'minutes inside !

Code : Tout sélectionner

Structure main   
    w.I[1]
    h.I[1]
    screenSprite.I
    *video
    angle.F
EndStructure

Procedure Elapsed()
    t = 240000 - ElapsedMilliseconds()
    If t < 0
     End
    EndIf
    ProcedureReturn t
EndProcedure

Define *this.main = AllocateMemory(SizeOf(main) )
With *this
    InitSprite()
    InitKeyboard()
    InitMouse()
    ExamineDesktops()
    \w[0] = DesktopWidth(0)
    \h[0] = DesktopHeight(0)
    OpenScreen(\w[0], \h[0], 32, "", #PB_Screen_SmartSynchronization, DesktopFrequency(0) )
    \screenSprite = CreateSprite(#PB_Any, 320, 200, #PB_Sprite_AlphaBlending)
    ZoomSprite(\screenSprite, \w[0], \h[0] )   
    \angle = 0.0
    Repeat
        t0 = t
        t = Elapsed()
        delta = 16 - (t - t0) 
        If delta < 1
            delta = 1
        EndIf
        If delta > 17
            delta = 17
        EndIf
        Delay(delta)
        t = Elapsed()
        ExamineKeyboard()
        If KeyboardPushed(#PB_Key_Escape)
            End
        EndIf
        j + 1
        If StartDrawing(SpriteOutput(\screenSprite) )
            \video = DrawingBuffer()
            For i = 0 To 63999
                x = i % 320
                y = i / 320
                dx = 160 - x
                dy = 100 - y
                c = Sqr(dx*dx+ dy*dy) * (t / 1000)
                df.d = Pow(ATan2(-dy, dx), 2) * (t / 100)
                c + df
                c & 255
                If c < 128 + 64
                    c = 0
                Else
                    If c < 128 + 64 + 16
                        c = RGB(0, 255, 255)
                    Else
                        If c < 128 + 64 + 32
                            c = RGB(0, 0, 255)
                        Else
                            If c < 128 + 64 + 48
                                c = RGB(0, 255, 0)
                            Else
                                c = RGB(255, 0, 0)
                            EndIf
                        EndIf
                    EndIf                 
                EndIf
                PokeL(\video + i << 2, c)
            Next
            StopDrawing()
        EndIf
        ClearScreen(0)
        SpriteQuality(0)
        DisplaySprite(\screenSprite, 0, 0)       
        If StartDrawing(ScreenOutput() )
            DrawText(0, 0, Hex(t) )
            StopDrawing()
        EndIf
        FlipBuffers()
    ForEver    
EndWith

Re: Souvenirs analogiques...

Publié : dim. 19/juin/2022 20:20
par Kwai chang caine
Pour le 2e ...j'ai jamais eu une télé qui faisait ça :lol:

Quand au premier, ça me rappelle un peu quelque chose :mrgreen:

Sans compter que ça m'a fait penser à "Jauni"
a écrit :Qu'on m'donne le numérique pour qu'j'aime l'analogiiiique
De la 4K pour qu'j'aime les images floues
On m'a trop donné bien avant l'enviiiie, j'ai oublié de vous dire merciiiii :mrgreen:
Image

En tout cas merci pour le partage 8)

Re: Souvenirs analogiques...

Publié : lun. 20/juin/2022 11:08
par Ar-S
Très cool ces 2 petits effets :D

Re: Souvenirs analogiques...

Publié : lun. 22/août/2022 20:04
par djes
Sympa, ça fait longtemps que je n'en avais pas vu ; bravo Ollivier !

Re: Souvenirs analogiques...

Publié : lun. 22/août/2022 21:04
par SPH
Très interessant ce brouillage tv.

Bravo 8O

Re: Souvenirs analogiques...

Publié : jeu. 25/août/2022 12:24
par Ollivier
djes a écrit : lun. 22/août/2022 20:04 Sympa, ça fait longtemps que je n'en avais pas vu ; bravo Ollivier !
Merci pour ta participation. Ça rejoint le lien entre pi et les nombres premiers entre eux, sujet dont tu m'as parlé il y a... six ans (déjà !). Tu me disais avoir souvenir d'un code rudimentaire qui traçait des cercles à partir des nombres premiers sans pouvoir remettre la main dessus (date, langage, etc...)

Alors, je ne pourrai pas, moi non plus mettre la main sur ce code, ne l'ayant pas connu. Mais, effectivement, au vu de la video que tu m'as récemment montrée, et après avoir construit le 2nd code dans ce sujet (titre "4 minutes inside")
je pense réussir à créer cet algo insolite qui permet de construire des cercles à partir des nombres premiers.

Re: Souvenirs analogiques...

Publié : jeu. 25/août/2022 17:17
par djes
Ah oui ? Chouette :)

Re: Souvenirs analogiques...

Publié : jeu. 25/août/2022 22:41
par Ollivier
Eh bien, cher Djes, sauf erreur grossière de ma part (et j'en suis bien capable !), le gars il s'est planté !

Mate en 14:18 (durée 5). La 3ième ligne contient deux combinaisons en réalité :

Pif, pif, pif, paf, paf
et
Pif, pif, paf, pif, paf.

Lui ne représente que pif, pif, paf, pif, paf alors que pif, pif, pif, paf, paf existe aussi et est unique (nombre premier 3 + nombre premier 2, aucun autre couple dont chaque membre est respectivement premier avec ces deux-ci n'existe).


Après, mate en 14:19 (durée 6). Les lignes 2 et 4 existent déjà en durée 3, et la ligne 2 existe en durée 2.

Je passe la durée 7 et les suivantes.

Conclusion : son algo manque de certains motifs périodiques tandis qu'il en maintient d'autres qui sont premiers avec des motifs de période plus courte.

Pour être plus général (en maths) la seule construction de cercle n'est faisable qu'avec les racines : ça permet de construire un demi quart de rond.

Aussi, si l'on veut lier les nombres premiers à la construction d'un cercle, il faut être capable de couper un angle en 3 avec un compas, et faire ce que l'on appelle une trisection d'un angle, chose considérée impossible depuis quelques siècles. En démontant les preuves de l'impossibilité de la trisection d'un angle, tu résouds l'équation de Riemann.

Re: Souvenirs analogiques...

Publié : jeu. 25/août/2022 22:56
par SPH
Ollivier, pour que tes codes soient en couleur, il faut que tu les enfermes dans une balise "code-pb" et pas simplement "code" :idea:

Re: Souvenirs analogiques...

Publié : mer. 31/août/2022 10:09
par Ollivier
J'avoue, sph, que j'adapte si souvent la luminosité de mon écran (une bonne dizaine de fois) que je ne fais pas trop attention à cette option. Et j'avoue même avoir un peu de mal à lire avec la coloration actuelle, bien que les couleurs choisies semblent mieux adaptées pour ne pas abîmer les yeux.

Et, concernant un algo sur un tracé de cercle avec les nombres premiers, je ne désespère pas. J'ai la conviction que djes a vu un tel code dans un passé lointain. Les règles algorithmiques sont plus élémentaires que les règles mathématiques. Ainsi ce qui est impossibles en maths arrive parfois à être possible en algo. C'est une question de temps : les maths c'est plus redondant et garni. Une exception mathématique doit être démontrée, quite à perdre des siècles si nécessaire, tandis que l'algorithmie ne se démontre que par ses applications, et aussi, l'intérêt qui y est prêté.