Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| une application de 2d_flood | |
| | |
Auteur | Message |
---|
sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: une application de 2d_flood Jeu 22 Juil 2010 - 14:25 | |
| rapidite,efficacite - Code:
-
dim x0,y0,r,Px,Py,j%,n%,Pi,a,a0,a1,h,w Pi = 4*ATN(1) w=1 rem coordonnées du centre x0=750 Y0=500 width 0,1500 height 0,1000 rem rayon r=500
rem nombre de côtés n%=80 a1 =( 2*Pi/n%)/w: ' angle de rotation de chaque côté
rem angle de début a0=1
for h = 1 to 30 if key_down_code = 27 then terminate
Px = r * Cos(a0) + x0 Py = r/w * Sin(a0) + y0 2D_poly_from px,py a = a0 For j% = 0 To n% a = a + a1 Px = r*Cos(a) + x0 Py = r/w*Sin(a) + y0 2D_poly_to Px, Py Next j% wait 300 a0 = a0 + 1 w=w+0.25 2d_flood x0,y0,rnd(255),rnd(255),rnd(200) next h END
et beaucoup d'applictions possibles! | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Jeu 22 Juil 2010 - 17:37 | |
| Pas mal, pas mal du tout ! | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Peinture abstraite Jeu 22 Juil 2010 - 20:07 | |
| On peut aussi faire comme ça : - Code:
-
rem ' Peinture abstraite dim i , x , y label go width 0,1000 : height 0,580 x=960 : y=500 caption 0,"DÉMO 2D-FLOOD" picture 1 width 1,960 : height 1,500 2d_target_is 1 button 2 left 2,20 : top 2,510 : width 2,130 caption 2,"Dessiner-Redessiner" on_click 2,go
end
go: hide 1 cls for i=1 to 100 2d_line int(rnd(x))+1,int(rnd(y))+1,int(rnd(x))+1,int(rnd(y))+1 next i for i=1 to 100 2d_flood int(rnd(x-300))+151,int(rnd(y-300))+151,int(rnd(255))+1, int(rnd(255))+1,int(rnd(255))+1 next i 2d_flood 2,2,255,255,255 show 1 return Vous ne trouvez pas que ça ressemble à certaines peintures modernes vendues très chères dans certaines galeries ? P't-être j'vais pouvoir les vendre !!! (allez, j'accepte que vous en accrochiez une au dessus de votre bureau) En tout cas, je dirais plusieurs trucs : - apparemment le 2d_flood, lorsqu'il tombe sur une ligne, il la colore - mais pourquoi le 2d_flood a-t-il la tremblote comme ça ? - je n'ai pas trouvé le moyen d'employer le full_space avec picture
Dernière édition par jjn4 le Ven 23 Juil 2010 - 13:44, édité 2 fois | |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: une application de 2d_flood Jeu 22 Juil 2010 - 22:57 | |
| l'abstrait vous dites.! - Code:
-
rem escape pour sortir dim ya,yb,xa,xb,a ,b ,y ,x ,w ,x0,y0 width 0,2000 height 0,1100 color 0, 140,255,120 rem y=a*x+b rem a coef directeur rem 1/calculer a rem entrer les valeurs for w=1 to 500 ya=rnd(1100) yb=rnd(1100) xa= rnd(2000) xb=rnd(2000) a=(yb-ya)/(xb-xa)
display
rem 2/ calculer b
b= ya-(a*xa) y=(a*xa)+b
for xa =1 to 2000 step 4 if key_down_code = 27 then terminate y=(a*xa)+b 2d_circle xa,y,2 2d_circle y+25,xa,2 2d_circle y+100,xa-100,2 rem on peut rajouter "cls " ici next xa 2d_fill_color rnd(255),rnd(255),rnd(255)
2d_flood rnd(2000),rnd(1000),rnd(255),rnd(255),rnd(255) wait 500 cls next w end
| |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Ven 23 Juil 2010 - 11:30 | |
| Je sens qu'on va pouvoir ouvrir une galerie de peintures, bientôt, tous les deux ! | |
| | | Invité Invité
| Sujet: Re: une application de 2d_flood Ven 23 Juil 2010 - 12:38 | |
| En regardant le programme, celui de jjn4, je me demande si il ne faudrait pas une instruction supplémentaire contraire à DISPLAY.
On bloque l'affichage au départ, et à la fin on met DISPLAY pour afficher, ainsi les effets flash ne se produirait qu'une fois. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: une application de 2d_flood Ven 23 Juil 2010 - 13:17 | |
| Pour améliorer l'affichage du programme de jjn4, il suffit d'ajouter 2 lignes à la routine go: 1. un "hide 1" au début, avant "cls" 2. un "show 1" avant "return"
Et il n'y a plus d'effets visuels désagréables... | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: une application de 2d_flood Ven 23 Juil 2010 - 13:36 | |
| Concernant ce problème d'effet visuel, je suis de l'avis de Cosmos car on a le même phénomène sur des programmes contenants beacoups de FORM(s). Cela se produit au "RUN" du .bas ou de l'.exe, tout les FORM(s) crées dans le programme apparaissent une fraction de seconde. A ce jour je n'ai pas trouvé de parade. Ta solution (HIDE), Klauss, ne peut pas être appliqué à des FORM(s) qui n'existent pas encore.
A+
| |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Ven 23 Juil 2010 - 13:45 | |
| En effet !!! Merci, Klaus ! (le programme plus haut est modifié en conséquence) | |
| | | Invité Invité
| Sujet: Re: une application de 2d_flood Ven 23 Juil 2010 - 13:54 | |
| Tu parts Klaus sur le programme de JJN4 qui fait au départ un dessin sur une surface. Moi je pense à d'autre cas de figure. Ainsi du texte sur un picture comme je le fais avec mes cellules, je ne vais pas mettre à hide un picture sur du texte le temps que le texte se mette à jour. L'effet serait pire que de laisser tel quel. Non je pense et c'est pas pour donner du travail à Jack, d'ailleurs, personnellement je ne vais pas ajouter ceci dans la list des instructions à faire, que l'ajout d'une instruction de blocage serait le bien voulu, ou alors trouver (et je ne sais pas si c'est possible) le moyen de faire que l'affichage se fasse sans a coup, sans les effets flash. J'écris vite, il faut que je parte. |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: une application de 2d_flood Ven 23 Juil 2010 - 22:32 | |
| @Cosmos70: Sur le fond, tu as bien sûr raison: il serait vraiment intéressant d'avoir une commande qui suspend les mises à jour de l'écran et qui la réactive. Ceci est utile pour tous les cas où il faut faire rapidement beaucoup de modifications, de sorte que cela donne un effet viisuel de flou ou de tremblant.
Moi, je voulais juste donner un coup de pouce avec les moyens existants de Panoramic, dans le contexte précis du programme de jjn4. Je conçois parfaitement que c'est une solution "brutale" qui ne convient certainement pas dans tous les cas. Elle résoud juste le problème pour lequel elle a été donnée. | |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: une application de 2d_flood Dim 25 Juil 2010 - 14:13 | |
| Je trouve que le flood est relativement fluide. Le balayage passe à travers la droite quand elle est trop verticale un essai qui va me servir d'ecran de veille - Code:
-
rem escape pour sortir dim ya,yb,xa,xb,a ,b ,y ,x ,w ,x0,y0 width 0,2000 height 0,1100 color 0, 140,255,120 rem y=a*x+b rem a coef directeur rem 1/calculer a rem entrer les valeurs for w=1 to 500 ya=rnd(1100) yb=rnd(1100) xa= rnd(2000) xb=rnd(2000) a=(yb-ya)/(xb-xa) display rem 2/ calculer b b= ya-(a*xa) y=(a*xa)+b for xa =1 to 2000 step 0.1 if key_down_code = 27 then terminate y=(a*xa)+b 2d_circle xa,y,4 rem on peut rajouter "cls " ici next xa 2d_fill_color rnd(255),rnd(255),rnd(255) 2d_flood rnd(2000),rnd(1000),rnd(255),rnd(255),rnd(255) wait 1000 cls next w
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: une application de 2d_flood Dim 25 Juil 2010 - 15:02 | |
| C'est intéressant.
Quant à la fluidité de flood_fill, je pense qu'elle est identique à celle des autres instructions de dessin en 2d - c'est-à-dire le résultat s'affiche ds'un seul coup, après la fin du traitement. Donc, visuellement, il n'y a pas de problème.
La difficulté apparaît si l'on fait rapidement à la suite quelques ou quelques dizaines d'opérations pour constituer un graphisme. La mise à jour de l'écran se fait au fur et à mesure, provoquant un effet perturbateur visuel (flicker en anglais). C'est vrai que pour des cas comme ça, on aurait besoin d'une commande permettant de suspendre temporairement les mises à jour d'un objet graphique et puis de les reprendre. A défaut, hide suivi des mises à jour suivi de show permet aussi d'éviter ce problème.
L'intérêt d'une commande de suspension et de reprise d'affichage se situe aussi au niveau des perforfmances, car éviter pendant quelques dizaines d'opérations graphiques la mise à jour permanente de la visualisation gane évidemment beaucoup sur le temps processeur et l'application sera beaucoup plus rapide et fluide. | |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: une application de 2d_flood Dim 25 Juil 2010 - 15:14 | |
| Attention! si vous ne portez pas de lunettes ne lancez pas ce code!! Effet stroboscopique ! - Code:
-
dim a,s ,c(1000),x ,v ,d(1000),k 2d_fill_color 255,0,0 color 0,125,192,47 2d_pen_color 255,0,0 width 0 ,400
height 0,500 form 1 height 1,500 width 1,400 left 1, 400 s=100 v=0 wait 1000 for k = 1 to 900 wait 10 if key_down_code = 27 then terminate v=v+1 print "vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv",v c(v)= mouse_x_position(0) print_locate 50,10 print "ccccccccccvvvvvvvvvv",c(v)
d(v)= mouse_y_position(0) print "dddddddddddddddddddd" ,d(v) 2d_circle c(v), d(v),5 if mouse_right_down(0)=0 end_if next k ' "................................................................." 2d_target_is 0
print_locate 20,150 print mouse_x_position(0) print_locate 20,170 print mouse_y_position(0) ' ........................................................... c(v)=c(1) :' on boucle? d(v)=d(1) v=0 ' ..................................................... 2d_target_is 1 2d_pen_width 2
color 1,54,218,226 for k= 2 to 900 2d_fill_color rnd(255),0,rnd(255) print c(k) ," .................. ",d(k)
if c(k)= 0 then c(k)=80 if d(k)= 0 then d(k)=80 if key_down_code = 27 then terminate if c(k)= 0 then c(k)=c(1) if d(k)= 0 then d(k)=d(1)
2d_circle c(k),d(k),1 2d_line c(k),d(k), c(k-1),d(k-1) 2d_flood rnd(400),rnd(500),rnd(255),rnd(255),rnd(255) wait 10 next k end
on promene la souris sur la droite affichage a gauche | |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: une application de 2d_flood Dim 25 Juil 2010 - 15:16 | |
| non c'est l'inverse :je suis ambidestre,ça me joue des tours | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: une application de 2d_flood Dim 25 Juil 2010 - 16:35 | |
| A utiliser avec un masque à souder. | |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: flood ,sinus,rnd Mar 27 Juil 2010 - 0:36 | |
| On pouvait pas faire ça avant - Code:
-
dim a ,x ,b, y,z ,w width 0,1850 height 0,1100 w=50 for z=1 to 100 for x =1 to 1900 step 0.1 if key_down_code = 27 then terminate y= 500+sin (x/56)*w 2d_circle x,y ,1 2d_circle y,x ,1
display next x w=w+20 2d_flood rnd(2000),rnd(1100),rnd(255),rnd(255),rnd(255) next z
je me regale! | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Mar 27 Juil 2010 - 0:54 | |
| | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: une application de 2d_flood Mar 27 Juil 2010 - 8:25 | |
| Effectivement, très joli ! | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: une application de 2d_flood Mar 27 Juil 2010 - 8:29 | |
| Si on laisse tourner longtemps, on obtient un joli tableau, Bravo Tu as un écran de grande taille, aussi je te suggère ceci: c'est ton code qui s'adaptera a toute les tailles d'ecran - Code:
-
dim a ,x ,b, y,z ,w,xe,ye xe=screen_x:ye=screen_y width 0,xe height 0,ye w=50 for z=1 to 100 for x =1 to 1900 step 0.1 if key_down_code = 27 then terminate y= 500+sin (x/56)*w 2d_circle x,y ,1 2d_circle y,x ,1
display next x w=w+20 2d_flood rnd(2000),rnd(1100),rnd(255),rnd(255),rnd(255) next z
| |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: une application de 2d_flood Mar 27 Juil 2010 - 9:09 | |
| Bonjour, un petit oubli, je remplacerai bien la ligne : - Code:
-
2d_flood rnd(2000),rnd(1100),rnd(255),rnd(255),rnd(255) par : - Code:
-
2d_flood rnd(xe),rnd(ye),rnd(255),rnd(255),rnd(255) | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: une application de 2d_flood Mar 27 Juil 2010 - 11:49 | |
| Oui éffectivement, c'est mieux ainsi. Une remarque sans grande importance sur ce code, mais qui pourrait en avoir sur d'autres: Si on positionne le pointeur de la souris sur la croix de fermeture et que la parti haut-droit de l'écran est coloré, le HINT de cette croix provoque un éffacement partiel de la couleur. Pour pallier au problème j'ai ajouter un PICTURE - Code:
-
dim a ,x ,b, y,z ,w,xe,ye xe=screen_x:ye=screen_y width 0,xe height 0,ye
xe=xe-8:ye=ye-35:picture 1:width 1,xe:height 1,ye:color 1,rnd(255),rnd(255),rnd(255)
w=50 for z=1 to 100 for x =1 to 1900 step 0.1 if key_down_code = 27 then terminate y= 500+sin (x/56)*w 2d_circle x,y ,1 2d_circle y,x ,1
display next x w=w+20 2d_flood rnd(xe),rnd(ye),rnd(255),rnd(255),rnd(255) next z
Tu remarqueras qu'il faut dimensionner le Picture légèrement moins que la taille de FORM 0 (hauteur du bandeau et width du pen) De cette façon tout les HINT(s) n'on pas d'influence sur l'image. Sergeauze, je ne veux pas usurper ton code, juste t'aider à l'améliorer. A+ | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: une application de 2d_flood Mar 27 Juil 2010 - 12:04 | |
| J'y ai ajouter l'utilisation de ON_CLOSE pour sortir par cette fameuse croix rouge. - Code:
-
label fin,run dim a ,x ,b, y,z ,w,xe,ye xe=screen_x:ye=screen_y width 0,xe height 0,ye xe=xe-8:ye=ye-35:picture 1:width 1,xe:height 1,ye:color 1,rnd(255),rnd(255),rnd(255) on_close 0,fin gosub run END ' ================================================================================== run: w=50 for z=1 to 100 for x =1 to 1900 step 0.1 if key_down_code = 27 then terminate y= 500+sin (x/56)*w 2d_circle x,y ,1 2d_circle y,x ,1
display next x w=w+20 2d_flood rnd(xe),rnd(ye),rnd(255),rnd(255),rnd(255) next z return
fin: terminate
Je déconseille de laisser tourner ce programme, si vous y ajoutez 2d_TARGET_IS 1, sous peine d'arrêt système. A+
Dernière édition par Jean Claude le Mer 28 Juil 2010 - 9:26, édité 1 fois | |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: une application de 2d_flood Mar 27 Juil 2010 - 13:35 | |
| Je ne vois aucun problème à ce que mes modestes contributions soit reprises et améliorées. Je dirais même que c’est le but de l’opération. Un peu comme dans une auberge espagnole, chacun apporte ce qu’il peut, selon ses moyens et le partage avec les autres ; et nous bénéficions tous de cet échange désintéresse.
| |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: une application de 2d_flood Mar 27 Juil 2010 - 15:24 | |
| Bonjour sergeauze,
Je n'y connais pas grand chose en tout ce qui touche le graphisme peut être pourra tu me renseigner:
Voila lorsque je déplace la form 0 pendant l'exécution de ton programme ou lorsque que je fait passer brièvement une autre fenêtre par dessus, le dessin n'est pas conservé, il s'efface... est-ce normal ?
| |
| | | Contenu sponsorisé
| Sujet: Re: une application de 2d_flood | |
| |
| | | | une application de 2d_flood | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |