FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Dessin à main levée Emptypar Pedro Hier à 15:50

» Un autre pense-bête...
Dessin à main levée Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Dessin à main levée Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Dessin à main levée Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Dessin à main levée Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Dessin à main levée Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Dessin à main levée Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Dessin à main levée Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Dessin à main levée Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Dessin à main levée Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Dessin à main levée Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Dessin à main levée Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Dessin à main levée Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Dessin à main levée Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Dessin à main levée Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
-17%
Le deal à ne pas rater :
(Black Friday) Apple watch Apple SE GPS + Cellular 44mm (plusieurs ...
249 € 299 €
Voir le deal

 

 Dessin à main levée

Aller en bas 
+3
Yannick
pascal10000
JL35
7 participants
AuteurMessage
JL35




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

Dessin à main levée Empty
MessageSujet: Dessin à main levée   Dessin à main levée EmptyDim 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
pascal10000

pascal10000


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

Dessin à main levée Empty
MessageSujet: Re: Dessin à main levée   Dessin à main levée EmptyLun 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
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Dessin à main levée Empty
MessageSujet: re   Dessin à main levée EmptyLun 28 Sep 2015 - 10:12

Whoua !...

Super Sub !
cheers
Revenir en haut Aller en bas
Minibug

Minibug


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

Dessin à main levée Empty
MessageSujet: Re: Dessin à main levée   Dessin à main levée EmptyLun 28 Sep 2015 - 11:26

Ca fonctionne parfaitement. Bravo JL35 !
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
JL35




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

Dessin à main levée Empty
MessageSujet: Re: Dessin à main levée   Dessin à main levée EmptyLun 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:
Dessin à main levée Capt110
(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
Jean Claude

Jean Claude


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

Dessin à main levée Empty
MessageSujet: Re: Dessin à main levée   Dessin à main levée EmptyLun 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
JL35




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

Dessin à main levée Empty
MessageSujet: Re: Dessin à main levée   Dessin à main levée EmptyLun 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
Dessin à main levée Vieux10


Dernière édition par JL35 le Lun 28 Sep 2015 - 14:44, édité 4 fois
Revenir en haut Aller en bas
papydall

papydall


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

Dessin à main levée Empty
MessageSujet: Re: Dessin à main levée   Dessin à main levée EmptyLun 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
http://papydall-panoramic.forumarabia.com/
JL35




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

Dessin à main levée Empty
MessageSujet: Re: Dessin à main levée   Dessin à main levée EmptyLun 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
jpcr

jpcr


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

Dessin à main levée Empty
MessageSujet: Re: Dessin à main levée   Dessin à main levée EmptyMar 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
http://jeanpierre.creis.free.fr/Panoramic/Panoramic.html
JL35




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

Dessin à main levée Empty
MessageSujet: Re: Dessin à main levée   Dessin à main levée EmptyMar 29 Sep 2015 - 10:20

C'est étonnant en effet ! j'ai repris le code tel quel ci-dessus, et j'ai bien:
Dessin à main levée Exempl10
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
Contenu sponsorisé





Dessin à main levée Empty
MessageSujet: Re: Dessin à main levée   Dessin à main levée Empty

Revenir en haut Aller en bas
 
Dessin à main levée
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Dessin
» Dessin d'arc
» MémoSite: pour avoir sous la main vos identifiants et ...
» Dessin 2d
» Dessin sur A4

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: