FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» GRID_LOAD
par Jean Claude Aujourd'hui à 21:04

» Rotation d'une image d'un angle quelconque
par Jean Claude Aujourd'hui à 20:57

» HVIEWER
par Yannick Aujourd'hui à 20:31

» StratégoV8 et V9
par Jean Claude Aujourd'hui à 20:13

» KGF_dll - nouvelles versions
par Klaus Hier à 21:28

» Déformation d'image en trapèze
par mindstorm Hier à 21:06

» Mah-Jong américain
par Jean Claude Lun 15 Jan 2018 - 19:37

» Problème avec Deepl
par Klaus Lun 15 Jan 2018 - 0:34

» Quelques nouvelles ...
par Jean Claude Ven 12 Jan 2018 - 22:40

» Renommer les instructions ITEM_... ?
par Jicehel Ven 12 Jan 2018 - 18:56

» Ludothèque Panoramic
par jjn4 Ven 12 Jan 2018 - 18:11

» sous-programmes et fonctions
par Jack Ven 12 Jan 2018 - 17:51

» Mah-Jong français
par Jean Claude Jeu 11 Jan 2018 - 22:15

» panoramic 0.9.28
par gigi75 Ven 5 Jan 2018 - 14:06

» Un jeu qui va vous énerver!
par Jean Claude Jeu 4 Jan 2018 - 22:05

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Janvier 2018
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
293031    
CalendrierCalendrier

Partagez | 
 

 Dessin à main levée

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
JL35



Nombre de messages : 6070
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Dessin à main levée   Lun 28 Sep 2015 - 0:32

Une petite sub de dessin à main levée toute simple (suite au bug signalé par Klaus sur les fonctions souris).
C'est vraiment rudimentaire et ça ne demande qu'à être étoffé, c'est tout simple, et il n'y a pas de timer.
Avec un exemple d'appel:
Code:
PICTURE 1: FULL_SPACE 1
Dessin(1): ' Message "Terminé !"
TERMINATE

SUB Dessin(p%)
' dessin à main levée dans le picture p%
DIM_LOCAL fm%,i%,j%,xd,yd,x,y
IF LABEL("Qdes")=0 THEN LABEL Qdes
fm% = 900
FORM fm%: TOP fm%,TOP(p%): LEFT fm%,LEFT(p%)+WIDTH(p%)+15: WIDTH fm%,150
  HEIGHT fm%,160: BORDER_SMALL fm%: FONT_NAME fm%,"Arial": FONT_BOLD fm%
  COLOR fm%,180,255,255: CAPTION fm%," -  DESSIN  -"
i%=fm%+1: ALPHA i%: PARENT i%,fm%: TOP i%,5:LEFT i%,5: CAPTION i%,"Épaiss. Trait :"
i%=i%+1: SPIN i%: PARENT i%,fm%: TOP i%,TOP(i%-1)-3: LEFT i%,85: WIDTH i%,45
  MIN i%,1: MAX i%,20: POSITION i%,1
i%=i%+1: ALPHA i%: PARENT i%,fm%: TOP i%,27: LEFT i%,5
  CAPTION i%,"Couleur Trait :"+CHR$(10)+" R=          G=          B="
i%=i%+1: SPIN i%: PARENT i%,fm%: TOP i%,TOP(i%-1)+27: LEFT i%,2: WIDTH i%,40
  MIN i%,0: MAX i%,255: POSITION i%,0
i%=i%+1: SPIN i%: PARENT i%,fm%: TOP i%,TOP(i%-1): LEFT i%,LEFT(i%-1)+42: WIDTH i%,45
  MIN i%,0: MAX i%,255: POSITION i%,0
i%=i%+1: SPIN i%: PARENT i%,fm%: TOP i%,TOP(i%-1): LEFT i%,LEFT(i%-1)+42: WIDTH i%,45
  MIN i%,0: MAX i%,255: POSITION i%,0
  FOR j%=i%-2 TO i%: MIN j%,0: MAX j%,255: POSITION j%,0: NEXT j%
i%=i%+1:BUTTON i%: PARENT i%,fm%: TOP i%,HEIGHT(fm%)-60: LEFT i%,WIDTH(fm%)/2-40
  CAPTION i%,Quitter: ON_CLICK i%,Qdes
2D_TARGET_IS p%
WHILE 2 > 1
    WHILE MOUSE_LEFT_DOWN(p%) = 0: PAUSE 100: END_WHILE
    xd = MOUSE_X_POSITION(p%): yd = MOUSE_Y_POSITION(p%): ' point de départ du dessin
    2D_PEN_WIDTH POSITION(fm%+2)
    2D_PEN_COLOR POSITION(fm%+4),POSITION(fm%+5),POSITION(fm%+6)
    WHILE MOUSE_LEFT_UP(p%) = 0
        x = MOUSE_X_POSITION(p%): y = MOUSE_Y_POSITION(p%)
        CAPTION 0, "x="+STR$(x)+" y="+STR$(y)
        2D_LINE xd,yd,x,y: xd = x: yd = y: PAUSE 100
    END_WHILE
END_WHILE
Qdes:
DELETE fm%
END_SUB
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
pascal10000

avatar

Nombre de messages : 666
Localisation : Troyes
Date d'inscription : 05/02/2011

MessageSujet: Re: Dessin à main levée   Lun 28 Sep 2015 - 9:14

c cool ton p'tit programme
avec un peut plus de fonction
on peut le classé avec les grand
paint et ceux du domaine public
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8011
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 28 Sep 2015 - 11:12

Whoua !...

Super Sub !
cheers
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Minibug

avatar

Nombre de messages : 2480
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Dessin à main levée   Lun 28 Sep 2015 - 12:26

Ca fonctionne parfaitement. Bravo JL35 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
JL35



Nombre de messages : 6070
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Dessin à main levée   Lun 28 Sep 2015 - 14:06

Merci les amis !

Ça peut servir entre autres à 'détourer' une partie d'image avec du noir pur, pour en faire un sprite.
Comme vous le savez certainement ( Smile ), le noir pur est la couleur de transparence pour apposer un sprite sur un Scene_2D, pratique pour incruster une image sur une autre.
Après, comme on ne peut pas faire un File_Save du résultat (dommage...), il faut faire une capture de la zone écran concernée et la sauvegarder.
Par exemple:
(cherchez l'erreur...)

@pascal10000,
la sub de dessin plus complète (avec dessin à main levée, figures géométriques, remplissages de couleurs), ça a déjà été fait par ailleurs et déposé ici, je ne sais plus trop où, en tout cas elle est à disposition.
L'avantage de celle ci-dessus c'est qu'elle est simple et très courte.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5127
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Dessin à main levée   Lun 28 Sep 2015 - 14:44

Oui c'est très bon, mais je crois que tu l'as déjà fait.....

Par contre, je vais finir par me facher confused Evil or Very Mad Twisted Evil .
Tel quel, je ne vois même pas le bouton quitter. Toujours le même problème des dimensions bandeau et bord sous W8 ou W10.

Bon, vu ton grand age, je te pardonne Very Happy geek

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 6070
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Dessin à main levée   Lun 28 Sep 2015 - 15:21

Salut Jean Claude,
Oui je l'avais déjà fait (l'image ci-dessus), mais pas de cette façon (Sprite sur Scene_2D, là c'est plus facile à faire, et rapide).

Quant aux bordures... Evil or Very Mad ils vont finir par m'obliger à passer sous W10 ! Non, je résiste !
Tu rallonges le Form fm%, de 10 par exemple, ou plus, ça devrait aller.

Bon, allez, prends plutôt la version ci-dessous, et j'ai ajouté une fonction de remplissage de zone avec une couleur donnée, c'est bien pratique (Check Fill), Check, définir la couleur de remplissage, et cliquer à l'endroit voulu
Code:
PICTURE 1: FULL_SPACE 1
Dessin(1): ' Message "Terminé !"
TERMINATE

SUB Dessin(p%)
' dessin à main levée dans le picture p%
DIM_LOCAL fm%,i%,j%,xd%,yd%,x%,y%,sp1%,sp2%,ff%
IF LABEL("Qdes")=0 THEN LABEL Qdes
fm% = 900
FORM fm%: TOP fm%,TOP(p%): LEFT fm%,LEFT(p%)+WIDTH(p%)+15: WIDTH fm%,150
  HEIGHT fm%,220: BORDER_SMALL fm%: FONT_NAME fm%,"Arial": FONT_BOLD fm%
  COLOR fm%,255,255,164: CAPTION fm%," -   DESSIN   -"
i%=fm%+1: ALPHA i%: PARENT i%,fm%: TOP i%,5:LEFT i%,5: CAPTION i%,"Épaiss. Trait :"
i%=i%+1: SPIN i%: PARENT i%,fm%: TOP i%,TOP(i%-1)-3: LEFT i%,85: WIDTH i%,45
  MIN i%,1: MAX i%,20: POSITION i%,1
i%=i%+1: ALPHA i%: PARENT i%,fm%: TOP i%,27: LEFT i%,5
  CAPTION i%,"Couleur Trait :"+CHR$(10)+" R=          G=          B="
i%=i%+1: SPIN i%: PARENT i%,fm%: TOP i%,TOP(i%-1)+27: LEFT i%,2: WIDTH i%,40
  MIN i%,0: MAX i%,255: sp1% = i%
i%=i%+1: SPIN i%: PARENT i%,fm%: TOP i%,TOP(i%-1): LEFT i%,LEFT(i%-1)+42: WIDTH i%,45
  MIN i%,0: MAX i%,255
i%=i%+1: SPIN i%: PARENT i%,fm%: TOP i%,TOP(i%-1): LEFT i%,LEFT(i%-1)+42: WIDTH i%,45
  MIN i%,0: MAX i%,255
  FOR j%=sp1% TO i%: MIN j%,0: MAX j%,255: POSITION j%,0: NEXT j%
i%=i%+1: CHECK i%: PARENT i%,fm%: TOP i%,TOP(i%-1)+30: LEFT i%,5: WIDTH i%,100
  CAPTION i%,"Fill, couleur :": ff% = i%
i%=i%+1: ALPHA i%: PARENT i%,fm%: TOP i%,TOP(i%-1)+15: LEFT i%,5
  CAPTION i%," R=          G=          B="
i%=i%+1: SPIN i%: PARENT i%,fm%: TOP i%,TOP(i%-1)+15: LEFT i%,2: WIDTH i%,40
  MIN i%,0: MAX i%,255: sp2% = i%
i%=i%+1: SPIN i%: PARENT i%,fm%: TOP i%,TOP(i%-1): LEFT i%,LEFT(i%-1)+42: WIDTH i%,45
  MIN i%,0: MAX i%,255: POSITION i%,0
i%=i%+1: SPIN i%: PARENT i%,fm%: TOP i%,TOP(i%-1): LEFT i%,LEFT(i%-1)+42: WIDTH i%,45
  MIN i%,0: MAX i%,255: POSITION i%,0
  FOR j%=sp2% TO i%: MIN j%,0: MAX j%,255: POSITION j%,0: NEXT j%
  
i%=i%+1:BUTTON i%: PARENT i%,fm%: TOP i%,HEIGHT(fm%)-60: LEFT i%,WIDTH(fm%)/2-40
  CAPTION i%,Quitter: ON_CLICK i%,Qdes
2D_TARGET_IS p%
WHILE 2 > 1
    WHILE MOUSE_LEFT_DOWN(p%) = 0: PAUSE 100: END_WHILE
    xd% = MOUSE_X_POSITION(p%): yd% = MOUSE_Y_POSITION(p%): ' point de départ du dessin
    2D_PEN_WIDTH POSITION(fm%+2)
    2D_PEN_COLOR POSITION(sp1%),POSITION(sp1%+1),POSITION(sp1%+2): ' couleur
    WHILE MOUSE_LEFT_UP(p%) = 0
        x% = MOUSE_X_POSITION(p%): y% = MOUSE_Y_POSITION(p%)
        CAPTION 0, "x="+STR$(x%)+" y="+STR$(y%)
        IF CHECKED(ff%) = 1
            2D_FLOOD x%,y%,POSITION(sp2%),POSITION(sp2%+1),POSITION(sp2%+2): ' fill
            PAUSE 200
        ELSE
        2D_LINE xd%,yd%,x%,y%: xd% = x%: yd% = y%: PAUSE 50
        END_IF
    END_WHILE
END_WHILE
Qdes:
DELETE fm%
END_SUB

Signé: le vieux, le vieillard, mathusalem


Dernière édition par JL35 le Lun 28 Sep 2015 - 15:44, édité 4 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5623
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Dessin à main levée   Lun 28 Sep 2015 - 15:32

Pas mal JL35 cette petite SUB… je pourrais dessiner ta mobylette où il y est mention sur un autre topic. Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
JL35



Nombre de messages : 6070
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Dessin à main levée   Lun 28 Sep 2015 - 16:28

Ça risque de faire un peu plus artisanal... à main levée, enfin, à souris levée...

Du coup j'ai ajouté une fonction d'annulation du dernier tracé, pour le cas de dérapage dans le dessin, ou d'oubli de décocher le remplissage :
Code:
PICTURE 1: FULL_SPACE 1
Dessin(1): ' Message "Terminé !"
TERMINATE

SUB Dessin(p%)
' dessin à main levée dans le picture p%
DIM_LOCAL fm%,i%,j%,xd%,yd%,x%,y%,sp1%,sp2%,ff%
IF LABEL("Annder")=0 THEN LABEL Annder
IF LABEL("Qdes")=0 THEN LABEL Qdes
fm% = 900
FORM fm%: TOP fm%,TOP(p%): LEFT fm%,LEFT(p%)+WIDTH(p%)+15: WIDTH fm%,150
  HEIGHT fm%,250: BORDER_SMALL fm%: FONT_NAME fm%,"Arial": FONT_BOLD fm%
  COLOR fm%,255,255,164: CAPTION fm%," -   DESSIN   -": ON_CLOSE fm%,Qdes
i%=fm%+1: ALPHA i%: PARENT i%,fm%: TOP i%,5:LEFT i%,5: CAPTION i%,"Épaiss. Trait :"
i%=i%+1: SPIN i%: PARENT i%,fm%: TOP i%,TOP(i%-1)-3: LEFT i%,85: WIDTH i%,45
  MIN i%,1: MAX i%,20: POSITION i%,1
i%=i%+1: ALPHA i%: PARENT i%,fm%: TOP i%,27: LEFT i%,5
  CAPTION i%,"Couleur Trait :"+CHR$(10)+" R=          G=          B="
i%=i%+1: SPIN i%: PARENT i%,fm%: TOP i%,TOP(i%-1)+27: LEFT i%,2: WIDTH i%,40
  MIN i%,0: MAX i%,255: sp1% = i%
i%=i%+1: SPIN i%: PARENT i%,fm%: TOP i%,TOP(i%-1): LEFT i%,LEFT(i%-1)+42: WIDTH i%,45
  MIN i%,0: MAX i%,255
i%=i%+1: SPIN i%: PARENT i%,fm%: TOP i%,TOP(i%-1): LEFT i%,LEFT(i%-1)+42: WIDTH i%,45
  MIN i%,0: MAX i%,255
  FOR j%=sp1% TO i%: MIN j%,0: MAX j%,255: POSITION j%,0: NEXT j%
i%=i%+1: CHECK i%: PARENT i%,fm%: TOP i%,TOP(i%-1)+30: LEFT i%,5: WIDTH i%,100
  CAPTION i%,"Fill, couleur :": ff% = i%
i%=i%+1: ALPHA i%: PARENT i%,fm%: TOP i%,TOP(i%-1)+15: LEFT i%,5
  CAPTION i%," R=          G=          B="
i%=i%+1: SPIN i%: PARENT i%,fm%: TOP i%,TOP(i%-1)+15: LEFT i%,2: WIDTH i%,40
  MIN i%,0: MAX i%,255: sp2% = i%
i%=i%+1: SPIN i%: PARENT i%,fm%: TOP i%,TOP(i%-1): LEFT i%,LEFT(i%-1)+42: WIDTH i%,45
  MIN i%,0: MAX i%,255: POSITION i%,0
i%=i%+1: SPIN i%: PARENT i%,fm%: TOP i%,TOP(i%-1): LEFT i%,LEFT(i%-1)+42: WIDTH i%,45
  MIN i%,0: MAX i%,255: POSITION i%,0
  FOR j%=sp2% TO i%: MIN j%,0: MAX j%,255: POSITION j%,0: NEXT j%
i%=i%+1: BUTTON i%: PARENT i%,fm%: TOP i%,TOP(i%-1)+35: LEFT i%,20: WIDTH i%,100
  HEIGHT i%,20: CAPTION i%,"Annul dernier": ON_CLICK i%,Annder
i%=i%+1:BUTTON i%: PARENT i%,fm%: TOP i%,HEIGHT(fm%)-60: LEFT i%,WIDTH(fm%)/2-40
  CAPTION i%,Quitter: ON_CLICK i%,Qdes
2D_TARGET_IS p%
WHILE 2 > 1
    WHILE MOUSE_LEFT_DOWN(p%) = 0: PAUSE 100: END_WHILE
    CLIPBOARD_COPY p%: ' sauvegarde préalable
    xd% = MOUSE_X_POSITION(p%): yd% = MOUSE_Y_POSITION(p%): ' point de départ du dessin
    2D_PEN_WIDTH POSITION(fm%+2)
    2D_PEN_COLOR POSITION(sp1%),POSITION(sp1%+1),POSITION(sp1%+2): ' couleur
    WHILE MOUSE_LEFT_UP(p%) = 0
        x% = MOUSE_X_POSITION(p%): y% = MOUSE_Y_POSITION(p%)
        CAPTION 0, "     x="+STR$(x%)+" y="+STR$(y%)
        IF CHECKED(ff%) = 1
            2D_FLOOD x%,y%,POSITION(sp2%),POSITION(sp2%+1),POSITION(sp2%+2): ' fill
        ELSE
            2D_LINE xd%,yd%,x%,y%: xd% = x%: yd% = y%
        END_IF
        PAUSE 50
    END_WHILE
END_WHILE
GOTO Qdes
Annder:
CLIPBOARD_PASTE p%
RETURN
Qdes:
DELETE fm%
END_SUB
Mais je vais peut-être en rester là, la sub toute simplette commence à grossir un peu trop à mon goût (60 lignes).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jpcr

avatar

Nombre de messages : 276
Age : 51
Localisation : Val de Marne (94)
Date d'inscription : 06/05/2011

MessageSujet: Re: Dessin à main levée   Mar 29 Sep 2015 - 9:36

salut, étonnamment, je n’ai que du noir quoi que je change dans la petite fenêtre a droite.

jp
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jeanpierre.creis.free.fr/Panoramic/Panoramic.html
JL35



Nombre de messages : 6070
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Dessin à main levée   Mar 29 Sep 2015 - 11:20

C'est étonnant en effet ! j'ai repris le code tel quel ci-dessus, et j'ai bien:

en changeant les valeurs dans les spin's de droite... ?
Tu es sûr que tu n'as pas un écran en noir et blanc ? Very Happy

Blague à part, ça m'intrigue quand même cette histoire de ne pas avoir les couleurs... scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Dessin à main levée   

Revenir en haut Aller en bas
 
Dessin à main levée
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Ce n'est plus seulement un dessin...
» Les accords main gauche sur le FR5 ou 7
» midi et main gauche
» le message de dominique mainçon
» Création de boutons avec images et textes dessinés

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: