Souvenirs analogiques...

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Souvenirs analogiques...

Message 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 !
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: Souvenirs analogiques...

Message par TazNormand »

Salut Ollivier

Marrant, on se croirait revenu à l'époque des PurePunchs
Image
Image
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Souvenirs analogiques...

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

Re: Souvenirs analogiques...

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

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

Re: Souvenirs analogiques...

Message par Ar-S »

Très cool ces 2 petits effets :D
~~~~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
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Souvenirs analogiques...

Message par djes »

Sympa, ça fait longtemps que je n'en avais pas vu ; bravo Ollivier !
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: Souvenirs analogiques...

Message par SPH »

Très interessant ce brouillage tv.

Bravo 8O

!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.12LTS- 64 bits
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Souvenirs analogiques...

Message 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.
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Souvenirs analogiques...

Message par djes »

Ah oui ? Chouette :)
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Souvenirs analogiques...

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

Re: Souvenirs analogiques...

Message 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:

!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.12LTS- 64 bits
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Souvenirs analogiques...

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