
Comment afficher...
-
- Messages : 2194
- Inscription : jeu. 27/janv./2005 19:07
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


Merci Hardy

ps : aquoi sert
Code : Tout sélectionner
4*11*11

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

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
Ben alors, déjà oublié ce que tu disais, c'est le nombre d'éléments.Dobro a écrit :c'est ce que je disai en passant par les pointeurs ça doit etre plus rapide
![]()
Merci Hardy
ps : aquoi sertle 4 c'est pour les long , mais les 11 ??Code : Tout sélectionner
4*11*11

-
- Messages : 2194
- Inscription : jeu. 27/janv./2005 19:07
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

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.
-
- Messages : 2194
- Inscription : jeu. 27/janv./2005 19:07
@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
alors que cela ne m'arrive pas dans les autres forum!
Je suis obligé de faire cela manuellement !
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


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

Cela ne marche pas pour moiAstuce: Une mise en forme peut être appliquée au texte sélectionné.

Je suis obligé de faire cela manuellement !
Dernière modification par Frenchy Pilou le ven. 28/janv./2005 17:23, modifié 2 fois.
-
- Messages : 2194
- Inscription : jeu. 27/janv./2005 19:07