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
» Planétarium virtuel.
par Pedro Alvarez Hier à 16:57

» Roues dentées
par jean_debord Hier à 10:40

» Attention arnaque !
par mindstorm Jeu 19 Juil 2018 - 19:18

» Qui fait quoi ?
par silverman Mer 18 Juil 2018 - 15:21

» ITEM_SELECT N,L pour synedit
par silverman Mer 18 Juil 2018 - 15:20

» Boussole
par jean_debord Mer 18 Juil 2018 - 11:06

» Roue à n faces
par Marc Dim 15 Juil 2018 - 22:16

» Exemple d'une nouvelle version d'un GRID
par Jean Claude Ven 13 Juil 2018 - 10:32

» Une simple question
par Oscaribout Sam 7 Juil 2018 - 23:20

» BUG sur l'objet TAB
par Jack Sam 7 Juil 2018 - 21:12

» Monopoly moderne
par jjn4 Sam 7 Juil 2018 - 15:06

» Récapitulatif ludothèque panoramic jjn4
par jjn4 Ven 6 Juil 2018 - 17:41

» Lignes ondulées
par JL35 Ven 6 Juil 2018 - 17:39

» bug off_activate 0 : sans d'effet
par silverman Ven 6 Juil 2018 - 13:02

» Position des objets d'un conteneur dans FBPano et Panoramic
par Navigateur Ven 6 Juil 2018 - 12:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juillet 2018
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendrierCalendrier

Partagez | 
 

 Dessin à main levée

Aller en bas 
AuteurMessage
JL35



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

MessageSujet: Dessin à main levée   Dim 27 Sep 2015 - 23: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 : 703
Localisation : Troyes
Date d'inscription : 05/02/2011

MessageSujet: Re: Dessin à main levée   Lun 28 Sep 2015 - 8: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 : 8077
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 28 Sep 2015 - 10:12

Whoua !...

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

avatar

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

MessageSujet: Re: Dessin à main levée   Lun 28 Sep 2015 - 11: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 : 6302
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Dessin à main levée   Lun 28 Sep 2015 - 13: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 : 5527
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Dessin à main levée   Lun 28 Sep 2015 - 13: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 : 6302
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Dessin à main levée   Lun 28 Sep 2015 - 14: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 - 14:44, édité 4 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5980
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 - 14: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 : 6302
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Dessin à main levée   Lun 28 Sep 2015 - 15: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 - 8: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 : 6302
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Dessin à main levée   Mar 29 Sep 2015 - 10: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
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Ce n'est plus seulement un dessin...
» le message de dominique mainçon
» Création de boutons avec images et textes dessinés
» [Résolu] sprite dessin
» mise à jour zumo 660LM en seconde main [Résolu]

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: