Comment afficher...

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Frenchy Pilou
Messages : 2194
Inscription : jeu. 27/janv./2005 19:07

Message par Frenchy Pilou »

C'était juste pour gagner des lignes de code pour les encore non-licenciés :)
Est beau ce qui plaît sans concept :)
Speedy Galerie
hardy
Messages : 333
Inscription : mer. 02/juin/2004 13:19
Localisation : Tours

Message par hardy »

Moi, je fais plutôt ça, c'est plus rapide:

Code : Tout sélectionner

Dim tab(10,10) ; on cree 2 tableaux
Dim tab2(10,10)


For x= 0 To 10
  For y=0 To 10
    tab (x,y)=Random(50) ; on rempli le premier avec des chiffre au hazard
Next y
Next x

;on copie le tableau 1  dans le 2

copymemory(@tab(),@tab2(),4*11*11); long=4 octets



; on verifie

For x= 0 To 10
  For y=0 To 10
     Debug "tableau 1 "+ Str(tab (x,y))
    Debug "tableau 2 "+ Str(tab2 (x,y))
   
  Next y
Next x 
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

:D c'est ce que je disai en passant par les pointeurs ça doit etre plus rapide :D

Merci Hardy :D

ps : aquoi sert

Code : Tout sélectionner

4*11*11
le 4 c'est pour les long , mais les 11 ?? 8O
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

avec c=c/4.002 la c'est delire !! a regarder un moment ! :D

Code : Tout sélectionner

#dobro=1
#Police=1
#Sprite=1

spr=1
Dim ecran(640,400)
For x = 0 To 640 ; un écran de couleurs aléatoires
  For y = 0 To 400
    r=Random(2)
    g=Random(255)
    b=Random(5)
    c=RGB(r,g,b)
    ecran(x,y)= c
  Next y
Next x

; ***********************************
Resultat = InitSprite()
FontID = LoadFont(#Police, "arial", 18, #PB_Font_Bold )
EcranX = GetSystemMetrics_(#SM_CXSCREEN):;=largeur de l'ecran
EcranY = GetSystemMetrics_(#SM_CYSCREEN):;=hauteur de l'ecran
  WindowID = OpenWindow(1, 0, 0, 640, 400,  #PB_Window_SystemMenu| #PB_Window_BorderLess |#PB_Window_ScreenCentered , "hello")
  
  WindowID = WindowID(1)
  Result = OpenWindowedScreen(WindowID,0,0, 640, 400, 1, 0,0)
  CreateSprite(1, 650, 420)  ; cree 1 sprites qui sert d'ecran 1
  CreateSprite(2, 650, 420)  ;  cree 1 sprites qui sert d'ecran 2
  
  
  Resultat = InitMouse()
  
  Repeat
    ExamineMouse()
    Event=WindowEvent()
    
    While MouseButton(1)
      mouse_event_(#MOUSEEVENTF_LEFTUP,xm,ym,0,1) ; appuis
      mouse_event_(#MOUSEEVENTF_LEFTDOWN,xm,ym,0,1) ; relache
    Wend
    
    If MouseButton(2)
      End
    EndIf
    
    StartDrawing(SpriteOutput(spr) ) ; on dessine dedans
    For x = 1 To 640
      For y = 1 To 400 ;genre de moyenne de couleur autour du pixel considéré
        c=ecran(x-1,y) + ecran(x+1,y) + ecran(x,y-1) + ecran(x,y+1)
        c=c/4.002
        If c<1
          c = RGB(0,0,255)
        EndIf
        ecran(x,y)=c
        Plot(x,y,c) ; on affiche les pixels avec la nouvelle couleur
      Next y
    Next x
    StopDrawing() 
    spr=spr+1
    If spr>2
      spr=1
    EndIf
    
    
    DisplaySprite(spr, -5, -5)
    
    
    
    
    
    FlipBuffers():; affiche l'ecran
    ClearScreen(0, 0, 0) :;efface l'ecran
    
  Until Event=#PB_Event_CloseWindow
  
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Dobro a écrit ::D c'est ce que je disai en passant par les pointeurs ça doit etre plus rapide :D

Merci Hardy :D

ps : aquoi sert

Code : Tout sélectionner

4*11*11
le 4 c'est pour les long , mais les 11 ?? 8O
Ben alors, déjà oublié ce que tu disais, c'est le nombre d'éléments. :lol:
hardy
Messages : 333
Inscription : mer. 02/juin/2004 13:19
Localisation : Tours

Message par hardy »

@Dobro : pb de gestion de sortie du programme.
Ton prog m'a fait un mega plantage (spectaculaire!)
Enfin, pas de mal :D
Frenchy Pilou
Messages : 2194
Inscription : jeu. 27/janv./2005 19:07

Message par Frenchy Pilou »

Code : Tout sélectionner

#dobro=1
#Police=1
#Sprite=1
spr=1
Dim ecran(640,480)
For x = 0 To 639 ; un écran de couleurs aléatoires
  For y = 0 To 479
    r=Random(255)
    g=Random(255)
    b=Random(255)   
    c=RGB(r,g,b)  ;Couleur du pixel
    ecran(x,y)= c
  Next y
Next x
; ***********************************
Resultat = InitSprite()
FontID = LoadFont(#Police, "arial", 18, #PB_Font_Bold )
EcranX = 600 ;=largeur de l'ecran
EcranY = 480;=hauteur de l'ecran
  WindowID = OpenWindow(1, 0, 0, 640, 480,  #PB_Window_SystemMenu|#PB_Window_BorderLess |#PB_Window_ScreenCentered , "hello")
 
  WindowID = WindowID(1)
  Result = OpenWindowedScreen(WindowID,0,0, 640, 480, 1, 0,0)
  CreateSprite(1, 640, 480)  ; cree 1 sprites qui sert d'ecran 1
  CreateSprite(2, 640, 480)  ;  cree 1 sprites qui sert d'ecran 2   
 
 Repeat

    Event=WindowEvent()
   
      StartDrawing(SpriteOutput(spr) ) ; on dessine dedans
      
      For x = 1 To 638 ; lignes intérieures
              For y = 1 To 478;genre de moyenne de couleur autour du pixel considéré
          c=ecran(x-1,y) + ecran(x+1,y) + ecran(x,y-1) + ecran(x,y+1)
          Gosub t_race         
        Next y
      Next x      
 
      For x = 1 To 638 ;ligne x 0 
          c=ecran(x-1,0) + ecran(x+1,0) + ecran(x,1) + ecran(x,479)
          y=0
         Gosub t_race         
      Next x 
      For x = 1 To 638 ;ligne x 479 
          c=ecran(x-1,479) + ecran(x+1,479) + ecran(x,1) + ecran(x,478)
          y=479
         Gosub t_race         
      Next x 
      For y = 1 To 478 ;colonne 0 y
          c=ecran(639,y) + ecran(1,y) + ecran(0,y-1) + ecran(0,y+1)
          x= 0
         Gosub t_race         
      Next y
      For y = 1 To 478 ;colonne 639 y
          c=ecran(638,y) + ecran(0,y) + ecran(639,y-1) + ecran(639,y+1)
          x= 639
         Gosub t_race         
      Next y 
;Les 4 coins
         c=ecran(639,0) + ecran(1,0) + ecran(0,479) + ecran(0,1)
          x=0
          y=0
          Gosub t_race
         c=ecran(639,479) + ecran(1,479) + ecran(0,478) + ecran(0,0)
          x=0
          y=479
          Gosub t_race
        c=ecran(638,0) + ecran(0,0) + ecran(639,479) + ecran(639,1)
          x=639
          y=0
          Gosub t_race
         c=ecran(638,479) + ecran(0,479) + ecran(639,478) + ecran(639,0)
          x=639
          y=479
          Gosub t_race
     
    StopDrawing() 
    spr=spr+1
    If spr>2
      spr=1
    EndIf
      
    DisplaySprite(spr, 0, 0)      
   
    FlipBuffers():; affiche l'ecran
    ClearScreen(0, 0, 0) :;efface l'ecran
   
  Until Event=#PB_Event_CloseWindow 
  End
        t_race :
          m=4     
          c=c/m   ;Genre de moyenne de couleurs des 4 voisins du pixel considéré 
          s= 1 ;seuil 
          ;C'est la moyenne et le seuil qui déterminent des genres d'images totalement différentes!
          If c<s
            c=RGB(125,125,125)       ;Si la  moyenne de couleurs dépasse un seuil on la normalise   
          EndIf
          ecran(x,y)=c
          Plot(x,y,c) ; on affiche le pixel avec la nouvelle couleur
         Return    
     
Voila les bords sont propres :)
Maintenant il faudrait pouvoir rentrer 2 valeurs M et S car ce sont elles qui conditionnent la structure de l'image :)
J'ai abandonné le tableau temporaire, mais je garde précieusement vos indications de remplissage de tableaux :)
Dernière modification par Frenchy Pilou le ven. 28/janv./2005 15:58, modifié 3 fois.
Est beau ce qui plaît sans concept :)
Speedy Galerie
Frenchy Pilou
Messages : 2194
Inscription : jeu. 27/janv./2005 19:07

Message par Frenchy Pilou »

@dobro
Psychadélique n'est-ce pas ?
par contre c'est curieux que ton programme marche car moi le programme me dit dépassement des tailles de tableaux
La boucle doit aller de 0 à 639 :)
J'ai rectifié et cela marche :) (toujours en virant les tests de souris et autres fonctions donnant la taille écran :)

Pour ces programmes c'est fou le nombre de différentes d'images que l'on peut obtenir en changeant la Moyenne et le seuil !

Ps Autres truc curieux, les boutons de l'editeur de votre forum mettent systématiquements les balises à la fin de l'écran :x alors que cela ne m'arrive pas dans les autres forum!
Astuce: Une mise en forme peut être appliquée au texte sélectionné.
Cela ne marche pas pour moi :cry:
Je suis obligé de faire cela manuellement !
Dernière modification par Frenchy Pilou le ven. 28/janv./2005 17:23, modifié 2 fois.
Est beau ce qui plaît sans concept :)
Speedy Galerie
filperj
Messages : 395
Inscription : jeu. 22/janv./2004 1:13

Message par filperj »

Hé, très joli ! :D
J'aime beaucoup l'effet "à 2 niveaux".
Le chaos l'emporte toujours sur l'ordre
parcequ'il est mieux organisé.
(Ly Tin Wheedle)
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

filperj a écrit :Hé, très joli ! :D
J'aime beaucoup l'effet "à 2 niveaux".
Moi aussi :)
Frenchy Pilou
Messages : 2194
Inscription : jeu. 27/janv./2005 19:07

Message par Frenchy Pilou »

Essayez la même chose en chargeant une "Photo" !
Cela doit marcher tout pareil et faire des trucs pas croyables :)
Est beau ce qui plaît sans concept :)
Speedy Galerie
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Ben alors, déjà oublié ce que tu disais, c'est le nombre d'éléments. Laughing
:oops: quel ane ! :lol:
Répondre