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
» bouton dans autre form que 0
Dessin à main levée Emptypar leclode Aujourd'hui à 13:59

» KGF_dll - nouvelles versions
Dessin à main levée Emptypar Klaus Aujourd'hui à 11:41

» Gestion d'un système client-serveur.
Dessin à main levée Emptypar Klaus Aujourd'hui à 10:23

» PANORAMIC V 1
Dessin à main levée Emptypar papydall Sam 4 Mai 2024 - 3:43

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Dessin à main levée Emptypar Froggy One Jeu 2 Mai 2024 - 11:16

» @Jack
Dessin à main levée Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
Dessin à main levée Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
Dessin à main levée Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Dessin à main levée Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Dessin à main levée Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Dessin à main levée Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Dessin à main levée Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
Dessin à main levée Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Dessin à main levée Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Dessin à main levée Emptypar papydall Dim 21 Avr 2024 - 23:30

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-20%
Le deal à ne pas rater :
-20% Récupérateur à eau mural 300 litres (Anthracite)
79 € 99 €
Voir le deal

 

 Dessin à main levée

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




Nombre de messages : 7095
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 : 8610
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 : 4566
Age : 57
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 : 7095
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 : 5948
Age : 69
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 : 7095
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 : 7002
Age : 73
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 : 7095
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 : 7095
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 sur A4
» Dessin
» MémoSite: pour avoir sous la main vos identifiants et ...
» Dessin(x)
» Dessin de flèche

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: