| Logiciel de dessin (esquissage) en 8 lignes seulement!! | |
|
|
|
Auteur | Message |
---|
lodchjo
Nombre de messages : 162 Age : 53 Localisation : Anvers Date d'inscription : 26/12/2011
| Sujet: Logiciel de dessin (esquissage) en 8 lignes seulement!! Ven 3 Fév 2012 - 15:43 | |
| Bonjour! Pour prouver encore une fois le génialité de Panoramic, j'ai fait un petit logiciel de dessin en 8 (!!!) lignes de code seulement: - Code:
-
label drw on_click 0, drw end drw: while mouse_right_down(0)=0 2d_point mouse_x_position(0) ,mouse_y_position (0) end_while return
Pour un petit peu d'explication, on pourrait rajouter juste avant "end" et ça fera 9 lignes de code. - Code:
-
caption 0, "Click gauche pour dessiner, click droite pour arreter." Je rajouterai la selection de couleurs, épaisseur du pinceau, effacer tout etc, mais je trouve déjà pas mal! | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Logiciel de dessin (esquissage) en 8 lignes seulement!! Ven 3 Fév 2012 - 16:19 | |
| Astucieux ! Ce qui aurait été plus intéressant (et plus logique), ça aurait été de dessiner tant que le bouton gauche est enfoncé, et arrêter quand il est relâché: - Code:
-
while mouse_left_down(0)=1 mais il semble que ce ne soit pas possible en Panoramic, il faut un changement d'état entre deux tests du bouton... | |
|
| |
lodchjo
Nombre de messages : 162 Age : 53 Localisation : Anvers Date d'inscription : 26/12/2011
| Sujet: Re: Logiciel de dessin (esquissage) en 8 lignes seulement!! Ven 3 Fév 2012 - 16:29 | |
| - JL35 a écrit:
- Code:
-
while mouse_left_down(0)=1 mais il semble que ce ne soit pas possible en Panoramic, il faut un changement d'état entre deux tests du bouton... Effectivement! J'avais essayé d'abord plusieurs manières avec que le bouton gauche, comme celui que tu proposes, mais ça ne marche pas, ou j'ai pas trouvé LA seule bonne manière...? Bon, ce qui me fait plus de soucis au faite, c'est que l'image dessiné disparait lorsque la fenetre se fait couvrir par une autre, ou lorsque l'application est minimalisé... et je ne sais pas comment 'fixer' l'image dessiné de manière permanent Est-ce que c'est un bug connu?? Lode | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Logiciel de dessin (esquissage) en 8 lignes seulement!! Ven 3 Fév 2012 - 16:33 | |
| Je ne sais pas ce que tu entends par une autre fenêtre, mais chez moi le dessin reste bien même si je ballade dessus la fenêtre de l'éditeur, ou du navigateur, ou n'importe quelle autre fenêtre, il réapparaît quand je déplace la fenêtre Ah par contre, si je minimalise effectivement le dessin disparaît... Il faut dessiner dans un Picture (c'est logique, et ça permet de sauvegarder le dessin), là le dessin ne disparaît pas: - Code:
-
label drw picture 1: width 1, 580: height 1, 440 on_click 1, drw 2d_target_is 1: 2d_fill_color 0,0,0 end
drw: while mouse_right_down(1)=0 ' 2d_point mouse_x_position(1) ,mouse_y_position(1) 2d_circle mouse_x_position(1), mouse_y_position(1), 2 end_while return (j'ai ajouté l'épaisseur du trait, pour y voir plus clair). Mais avec le picture ça scintille beaucoup, c'est un peu gênant. | |
|
| |
lodchjo
Nombre de messages : 162 Age : 53 Localisation : Anvers Date d'inscription : 26/12/2011
| Sujet: Re: Logiciel de dessin (esquissage) en 8 lignes seulement!! Ven 3 Fév 2012 - 16:50 | |
| A oui, le picture!! J'avais essayé scene2d, mais c'est reservé au sprites et bmp apparemment. Mais, c'est vrai: qu'est ce que c'est moche le scintillement, punaise!!!! Et si on dessinait comme je faisais d'origine, mais on fait copier coller sur un picture non-visible pour garder l'image quand même? Mais remettre l'image tout le temps va le faire scintiller aussi. Solution: "always on top", mais cette commande n'existe pas (encore) dans panoramic.... CHez moi (Win XP Pro SP2), le dessin disparait la ou la fenetre de dessin se trouve sous n'importe quel autre fenetre et comme chez toi: quand c'est minimalisé. L. | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Logiciel de dessin (esquissage) en 8 lignes seulement!! Ven 3 Fév 2012 - 16:59 | |
| Ce n'est pas normal, je n'ai pas ce problème sous Win 7... Ce qui scintille, c'est que le dessin s'exécute en permanence, même si on ne bouge pas le curseur, il faut ne dessiner que quand c'est nécessaire: - Code:
-
label drw dim x%,y%, xs%, ys% picture 1: width 1, 580: height 1, 440 on_click 1, drw 2d_target_is 1: 2d_fill_color 0,0,0 end
drw: while mouse_right_down(1)=0 x% = mouse_x_position(1): y% = mouse_y_position(1) IF x%<>xs% OR y%<>ys% ' 2d_point x%,y% 2d_circle x%, y%, 2 xs% = x%: ys% = y% END_if end_while return always on top ça existe: TO_FOREGROUND n (j'ai essayé sur le Form 0, ça n'a pas l'air de faire grand chose...)
Dernière édition par JL35 le Sam 4 Fév 2012 - 11:31, édité 1 fois | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Logiciel de dessin (esquissage) en 8 lignes seulement!! Ven 3 Fév 2012 - 18:23 | |
| Sur une FORM, le résultat des PRINT et des 2D_xxx est perdu si l'on fait venir une autre fenêtre par-dessus. Ce n'est pas le cas avec un PICTURE. Ceci n'est pas un bug - c'est le fonctionnement normal de Panoramic. Ceci s'efface: - Code:
-
PRINT "Bonjour" 2D_RECTANGLE 20,20,100,200
Ceci ne s'efface pas: - Code:
-
PICTURE 1 2D_TARGET_IS 1 PRINT_TARGET_IS 1 PRINT "Bonjour" 2D_RECTANGLE 20,20,100,200
| |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Logiciel de dessin (esquissage) en 8 lignes seulement!! Ven 3 Fév 2012 - 19:06 | |
| Cool ! Ca me rappelle les concours 2 lignes en GFA basic dans Hebdogiciel... C'était dans une autre vie... | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Logiciel de dessin (esquissage) en 8 lignes seulement!! Ven 3 Fév 2012 - 22:05 | |
| T'as raison Nardo, à l'époque on trouvait plein de logiciels dans plein de revues... et ça donnait plein d'idées, c'était de la découverte permanente.
Et si quelqu'un a une idée pour tester le clic gauche: tracer quand le bouton est enfoncé, arrêter de tracer quand on relâche le bouton... ce serait plus naturel, mais je n'y arrive pas. | |
|
| |
lodchjo
Nombre de messages : 162 Age : 53 Localisation : Anvers Date d'inscription : 26/12/2011
| Sujet: Re: Logiciel de dessin (esquissage) en 8 lignes seulement!! Ven 3 Fév 2012 - 23:16 | |
| - JL35 a écrit:
- Et si quelqu'un a une idée pour tester le clic gauche: tracer quand le bouton est enfoncé, arrêter de tracer quand on relâche le bouton... ce serait plus naturel, mais je n'y arrive pas.
J'avais essayé ça d'abord, mais sans résultat! Bon, pour qq'un qui a du mal a tenir le bouton pendant longtemps et bouger la souris en meme temps, cette solution n'est pas mal | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Logiciel de dessin (esquissage) en 8 lignes seulement!! Ven 3 Fév 2012 - 23:24 | |
| Je ne suis pas sûr qu'il y ait une solution dans l'état actuel des choses, mais tu as raison, c'est vivable aussi comme ça. Là-dessus, bonne nuit ! | |
|
| |
exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Logiciel de dessin (esquissage) en 8 lignes seulement!! Sam 4 Fév 2012 - 0:03 | |
| Je l'ai lancé sans regarder le code^^ Résultat, impossible de le quitter. Control+Alt+Supprime donc...OK.
ça marche, (mis à part les scintillements les bandes de lumières qui défilent sur l'écran) sauf que pour qu'une personne puisse dessiner il faudrait pouvoir stopper le trait et le reprendre à un autre endroit, sinon le trait suit la souris et si elle va vers un menu du logiciel(exemple) le trait la suivra, ce qui fera un dessin mal fini.
Je ne comprend pas pkoi c'est 2D_circle que tu utilises pour dessiner.
EDIT:
Ah je viens de tester avec 2D_point, je comprend pourquoi tu ne fait pas avec. Ce n'est pas logique qu'on ne puisse pas dessiner avec le point, qui va s'amuser à juste tracer un point ? lol.
| |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Logiciel de dessin (esquissage) en 8 lignes seulement!! Sam 4 Fév 2012 - 10:53 | |
| 2D_CIRCLE c'est pour faire un plus gros point, avec le 2D_POINT tout seul ça fait des pointillés, et on ne voit pas grand chose. Mais c'est expérimental de toute façon.
Quant à dessiner en laissant le bouton gauche enfoncé, ça n'a pas l'air possible, Panoramic ne fait plus rien et ne répond plus tant que le bouton est enfoncé, il attend le prochain événement, c'est à dire le relâchement du bouton. C'est bien dommage qu'on ait cette pléthore de fonctions mouse un peu redondantes et qu'on ne puisse pas faire ça. | |
|
| |
exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Logiciel de dessin (esquissage) en 8 lignes seulement!! Sam 4 Fév 2012 - 14:07 | |
| Salut - Citation :
- C'est bien dommage qu'on ait cette pléthore de fonctions mouse un peu redondantes et qu'on ne puisse pas faire ça.
Tiens pour une fois on est d'accord ^^ Idem pour d'autres composants d'ailleurs, comme le sprite. | |
|
| |
Invité Invité
| Sujet: Re: Logiciel de dessin (esquissage) en 8 lignes seulement!! Sam 4 Fév 2012 - 16:28 | |
| Petite dégression de ma part de 10 minutes. Il me semblait avoir déjà essayé ce genre de programme. - Code:
-
dim x,x1,y,y1,go
label drw ,tim_tim picture 1: width 1, 580: height 1, 440 on_click 1, drw 2d_target_is 1: 2d_fill_color 0,0,0 timer 2:timer_interval 2,100 :on_timer 2,tim_tim end
tim_tim: if mouse_right_up(1) =1 then timer_off 2 :go=0:return x= mouse_x_position(1) y= mouse_y_position(1) if go=0 then x1=x:y1=y :go = 1 if x <> x1 or y <> y1 2d_line x1,y1,x,y x1=x : y1=y end_if return
drw: if mouse_right_down(1) = 1 timer_on 2 end_if return
|
|
| |
exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Logiciel de dessin (esquissage) en 8 lignes seulement!! Sam 4 Fév 2012 - 16:31 | |
| Bravo ça marche super, on peut stopper le trait avec le bouton droit de la souris et reprendre le dessin en cliquant sur gauche.
Sinon, la remarque sur le point reste toujours valable, on devrait avoir la possibilité avec Panoramic, de dessiner avec le point, quand le bouton gauche est seulement pressé.
| |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Logiciel de dessin (esquissage) en 8 lignes seulement!! Sam 4 Fév 2012 - 23:01 | |
| Pas mal ton système cosmos, il y a toujours le coup du bouton droit pour stopper, mais le fait de faire des 2d_line au lieu des 2d_point ça évite les pointillés, le dessin est bien plus propre. Avec le timer, c'est à creuser. | |
|
| |
Invité Invité
| Sujet: Re: Logiciel de dessin (esquissage) en 8 lignes seulement!! Dim 5 Fév 2012 - 0:51 | |
| Merci Bonne nuit J'essaye de retrouver une instruction de dessin en GFA Basic, mais je ne retrouve pas le bouquin. Elle permettait de mettre dans un tableau, la succession de lignes pour faire d'un trait par exemple le dessin de polygone. C'est dommage de ne pas avoir cette instruction. |
|
| |
exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Logiciel de dessin (esquissage) en 8 lignes seulement!! Dim 5 Fév 2012 - 1:58 | |
| Je connais pas ton instruction GFA cosmos mais la commande qui s'en rapproche c'est poligone dans les basics en général. Et dans Panoramic c'est "2D_Poly_To".
| |
|
| |
Invité Invité
| Sujet: Re: Logiciel de dessin (esquissage) en 8 lignes seulement!! Dim 5 Fév 2012 - 2:22 | |
| Non, ça n'a rien a voir. En réalité dans le tableau on pouvait mettre 127 ou 128 commande paramètres de 2D_POLY_TO Ce qui fait qu'avec une seule instruction, on dessinait une figure. Les coordonnées étaient dans le tableau. Maintenant, réellement: |
|
| |
exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Logiciel de dessin (esquissage) en 8 lignes seulement!! Dim 5 Fév 2012 - 2:28 | |
| Ok Essaie de faire un tableau de 2D_poly_to alors. Je te parlais de 2D poly_to car on peut faire une figure avec aussi normalement, mais si ç'est encore plus puissant que ça, il y a que tableau qui pourra te dépanner. | |
|
| |
bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Logiciel de dessin (esquissage) en 8 lignes seulement!! Mar 14 Fév 2012 - 23:32 | |
| Bonsoir à tous, En ce moment, j'étudie de près vos petits programmes de dessin à tous. (Bien entendu, j'ai une idée d'un gros programme encore derrière la tête, mais je ne peux pas déterminer encore si cela est réalisable avec Panoramic). Pour en revenir à ce problème: JL35 avait dit: - Citation :
- Ce qui aurait été plus intéressant (et plus logique), ça aurait été de dessiner tant que le bouton gauche est enfoncé, et arrêter quand il est relâché:
- Citation :
- mais il semble que ce ne soit pas possible en Panoramic, il faut un changement d'état entre deux tests du bouton...
et lodchjo lui a répondu: - Citation :
- Effectivement! J'avais essayé d'abord plusieurs manières avec que le bouton gauche, comme celui que tu proposes, mais ça ne marche pas, ou j'ai pas trouvé LA seule bonne manière...?
Bref, dans le petit programme que je propose, il y a 2 lignes en REM. Si vous activez la ligne: "if mouse_right_up(1)=1 then exit_while" vous pourrez dessiner une ligne en cliquant sur le bouton gauche, puis relachez-le, le trait doit suivre le pointeur de la souris, et cliquez sur le bouton droit, pour terminer le trait. Maintenant, si vous activez l'autre ligne (sans oubliez de remettre la précédente en REM): "if mouse_left_up(1)=1 then exit_while" vous pourrez dessiner une ligne en cliquant sur le bouton gauche, restez appuyé sur le bouton gauche, le trait doit suivre le pointeur de la souris, puis relachez le bouton gauche pour arrêter le trait. - Code:
-
dim xd,yd,xf,yf,xv,yv,cok,cno label trait,fin full_space 0:color 0,255,255,255:picture 1:full_space 1 2d_target_is 1 image 100 on_close 0,fin timer 99:timer_interval 99,1:on_timer 99,trait end trait: timer_off 99 cok=mouse_left_down(1):cno=mouse_right_up(1) if (cok=1 and cno=0) xd=mouse_x_left_down(1):yd=mouse_y_left_down(1) else timer_on 99:return end_if 2d_pen_width 3:2d_pen_color 0,0,200 2d_image_copy 100,0,0,width(1),height(1) while (cok=1 and cno=0) xf=mouse_x_position(1):yf=mouse_y_position(1) if xf<>xv or yf<>yv 2d_image_paste 100,0,0:2d_line xd,yd,xf,yf:xv=xf:yv=yf:wait 500 end_if ' if mouse_left_up(1)=1 then exit_while ' if mouse_right_up(1)=1 then exit_while end_while timer_on 99 return
fin: terminate Bonne soirée à vous tous, cordialement. | |
|
| |
bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Logiciel de dessin (esquissage) en 8 lignes seulement!! Mar 14 Fév 2012 - 23:54 | |
| Vous pouvez même changer le 2d_line en 2d_rectangle. Puis mettez 2d_pen_width à 1 et rajouter 2d_pen_dash. Vous pouvez faire de la sélection sur une zone défini par la souris maintenant! | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Logiciel de dessin (esquissage) en 8 lignes seulement!! Mer 15 Fév 2012 - 0:03 | |
| Intéressant et à creuser ton idée. J'avais bien pensé au timer, mais c'est bien saccadé... Et puis il y a quelque chose qui me chiffonne, je n'arrive pas à tracer une figure libre en continu, le tracé précédent s'efface à chaque fois... Bon, on verra ça demain à tête reposée (peut-être...) Bonne nuit ! | |
|
| |
bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Logiciel de dessin (esquissage) en 8 lignes seulement!! Mer 15 Fév 2012 - 0:17 | |
| Salut JL35, Chez moi rien ne s'efface. Je ne comprends pas ce qui t'arrive. As-tu bien retiré l'apostrophe à une ligne d'abord, puis pour un second essai, tu la remet et tu enlève l'autre! Lis bien ce que j'ai expliqué dans mon précédent post et tu devrais voir que ça marche. Bonne nuit à toi | |
|
| |
Contenu sponsorisé
| Sujet: Re: Logiciel de dessin (esquissage) en 8 lignes seulement!! | |
| |
|
| |
| Logiciel de dessin (esquissage) en 8 lignes seulement!! | |
|