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
» select intégrés
Un petit programme de dessin sans prétention Emptypar jjn4 Aujourd'hui à 18:33

» Aide de PANORAMIC
Un petit programme de dessin sans prétention Emptypar leclode Aujourd'hui à 18:23

» PANORAMIC V 1
Un petit programme de dessin sans prétention Emptypar Klaus Aujourd'hui à 9:53

» Je teste PANORAMIC V 1 beta 1
Un petit programme de dessin sans prétention Emptypar Klaus Aujourd'hui à 9:52

» bouton dans autre form que 0
Un petit programme de dessin sans prétention Emptypar leclode Hier à 13:59

» KGF_dll - nouvelles versions
Un petit programme de dessin sans prétention Emptypar Klaus Hier à 11:41

» Gestion d'un système client-serveur.
Un petit programme de dessin sans prétention Emptypar Klaus Hier à 10:23

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Un petit programme de dessin sans prétention Emptypar Froggy One Jeu 2 Mai 2024 - 11:16

» @Jack
Un petit programme de dessin sans prétention Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
Un petit programme de dessin sans prétention Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
Un petit programme de dessin sans prétention Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Un petit programme de dessin sans prétention Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Un petit programme de dessin sans prétention Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Un petit programme de dessin sans prétention Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Un petit programme de dessin sans prétention Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment :
Réassort du coffret Pokémon 151 ...
Voir le deal

 

 Un petit programme de dessin sans prétention

Aller en bas 
5 participants
AuteurMessage
JL35




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

Un petit programme de dessin sans prétention Empty
MessageSujet: Un petit programme de dessin sans prétention   Un petit programme de dessin sans prétention EmptySam 27 Nov 2010 - 17:37

Largement inspiré (et même carrément copié pour la partie essentielle: le s/p time) de l'intervention de Nicolas (merci Nicolas) dans la rubrique les Inutilitaires ("Sélection").
C'est très simplifié, et on peut facilement imaginer des développements:
Code:
' Dessin.bas
LABEL time, Ligne, Rectplein, Rectvide, Cercplein, Cercvide, Texte, Coultrac, Coulfond
LABEL New, Opn, Enr, Ens, Imp, Quit, Anul, Hlp, Apr, Iminfo, Redim
LABEL chp, vlf, vfont

DIM w0, h0, wp, hp, mg, lb, hb, i%, j%, c, cr, cg, cb, tr, tg, tb, lc, hc
DIM x,y,x1,y1,x2,y2,x3,y3,xa,ya,truc,f$,fm$,fp$, fz$, fig,a,r,pi,pas, wp$, m$
DIM pic, o1, o2, oct, ocf, nti%, ra, wn, hn, pr%, pg%, pb%
DIM na, nva, fa$(10), iv$, a$, wi, hi, font$, fsz%, txt$, lc%, hc%
DATA 0,0,0,0,0,128,0,128,0,0,128,128,128,0,0,128,0,128,128,64,0,192,192,192
DATA 128,128,128,0,0,255,0,255,0,0,255,255,255,0,0,255,0,255,255,255,0,255,255,255
' ====================== CHEMINS A AJUSTER ===================================
fm$ = "D:\TEMP\Image": ' images résultat (de image1 à image5.bmp)
fp$ = "Z:\Imgprn.txt": ' fichier d'impression
fz$ = "Z:\Infoimg.tmp"
wp$ = "C:\UTIL\WinTextPrint.exe ": ' module d'impression de Klaus
iv$ = "C:\Progra~1\Irfanv~1\i_view32.exe ": ' IrfanView
' =============================================================================
pi = 4*ATN(1)
fig = 1: ' fig =1 trait, =2 rectangle vide, =3 rectangle plein, =4 cercle vide
'              =5 cercle plein, =6 texte
tr = 0: tg = 0: tb = 0
f$ = ""
nva = 5: ' profondeur d'annulations
FOR i% = 1 TO nva: fa$(i%) = fm$ + STR$(i%) + ".bmp": NEXT i%
na = 1
h0 = SCREEN_Y-30
hp = h0-70: wp = INT(210*hp/297): ' image d'une feuille A4
mg = 100
w0 = wp+mg+20
WIDTH 0, w0: HEIGHT 0, h0

pic = 140: PICTURE pic: TOP pic, 4: LEFT pic, mg: WIDTH pic, wp: HEIGHT pic, hp

MAIN_MENU 1
SUB_MENU 2: PARENT 2, 1: CAPTION 2, "Fichier"
  SUB_MENU 21: PARENT 21, 2: CAPTION 21, "Nouveau"
  SUB_MENU 22: PARENT 22, 2: CAPTION 22, "Ouvrir"
  SUB_MENU 23: PARENT 23, 2: CAPTION 23, "Enregistrer"
  SUB_MENU 24: PARENT 24, 2: CAPTION 24, "Enregistrer sous..."
  SUB_MENU 25: PARENT 25, 2: CAPTION 25, "Imprimer"
  SUB_MENU 26: PARENT 26, 2: CAPTION 26, "Quitter"
  ON_CLICK 21, New: ON_CLICK 22, Opn: ON_CLICK 23, Enr: ON_CLICK 24, Ens
  ON_CLICK 25, Imp: ON_CLICK 26, Quit
SUB_MENU 3: PARENT 3, 1: CAPTION 3, "Edition"
  SUB_MENU 31: PARENT 31, 3: CAPTION 31, "Annuler"
  ON_CLICK 31, Anul
SUB_MENU 4: PARENT 4, 1: CAPTION 4, "Aide"
  SUB_MENU 41: PARENT 41, 4: CAPTION 41, "Aide"
  SUB_MENU 42: PARENT 42, 4: CAPTION 42, "A propos"
  ON_CLICK 41, Hlp: ON_CLICK 42, Apr

o1 = 50: lb = mg-10: hb = 25
CONTAINER_OPTION o1: TOP o1, 25: LEFT o1, 5: HEIGHT o1, 145: WIDTH o1, mg-10: CAPTION o1, "Objet"
OPTION o1+1: PARENT o1+1, o1: TOP o1+1, 20: LEFT o1+1, 5: WIDTH o1+1, mg-20: CAPTION o1+1, "Ligne"
OPTION o1+2: PARENT o1+2, o1: TOP o1+2, 40: LEFT o1+2, 5: WIDTH o1+2, mg-20: CAPTION o1+2, "Rect. vide"
OPTION o1+3: PARENT o1+3, o1: TOP o1+3, 60: LEFT o1+3, 5: WIDTH o1+3, mg-20: CAPTION o1+3, "Rect. plein"
OPTION o1+4: PARENT o1+4, o1: TOP o1+4, 80: LEFT o1+4, 5: WIDTH o1+4, mg-20: CAPTION o1+4, "Cercle vide"
OPTION o1+5: PARENT o1+5, o1: TOP o1+5, 100: LEFT o1+5, 5: WIDTH o1+5, mg-20: CAPTION o1+5, "Cercle plein"
OPTION o1+6: PARENT o1+6, o1: TOP o1+6, 120: LEFT o1+6, 5: WIDTH o1+6, mg-20: CAPTION o1+6, "Texte"
ON_CLICK o1+6, chp
MARK_ON o1+1

o2 = 70
CONTAINER_OPTION o2: TOP o2, 190: LEFT o2, 5: HEIGHT o2, 125: WIDTH o2, mg-10: CAPTION o2, "Largeur du tracé"
OPTION o2+1: PARENT o2+1, o2: TOP o2+1, 20: LEFT o2+1, 5: WIDTH o2+1, mg-20: CAPTION o2+1, "1 pixel"
OPTION o2+2: PARENT o2+2, o2: TOP o2+2, 40: LEFT o2+2, 5: WIDTH o2+2, mg-20: CAPTION o2+2, "2 pixels"
OPTION o2+3: PARENT o2+3, o2: TOP o2+3, 60: LEFT o2+3, 5: WIDTH o2+3, mg-20: CAPTION o2+3, "3 pixels"
OPTION o2+4: PARENT o2+4, o2: TOP o2+4, 80: LEFT o2+4, 5: WIDTH o2+4, mg-20: CAPTION o2+4, "4 pixels"
OPTION o2+5: PARENT o2+5, o2: TOP o2+5, 100: LEFT o2+5, 5: WIDTH o2+5, mg-20: CAPTION o2+5, "5 pixels"
MARK_ON o2+1

oct = 81: x1 = 10: y1 = 380: lc = 40: hc = 20
ALPHA oct-1: TOP oct-1, y1-40: LEFT oct-1, 10: CAPTION oct-1, "Couleur"+CHR$(10)+" du"+CHR$(10)+"  tracé"
PICTURE oct: TOP oct, y1: LEFT oct, x1: WIDTH oct, lc*2: HEIGHT oct, hc*8
2D_TARGET_IS oct
FOR j% = 0 TO 7
    FOR i% = 0 TO 1
        READ cr: READ cg: READ cb: 2D_FILL_COLOR cr,cg,cb
        2D_RECTANGLE i%*lc,j%*hc,i%*lc+lc,j%*hc+hc
    NEXT i%
NEXT j%
ON_CLICK oct, Coultrac
PICTURE oct+1: TOP oct+1, y1-40: LEFT oct+1, x1+lc: WIDTH oct+1, lc: HEIGHT oct+1, lc-15
COLOR oct+1, 0,0,0

ocf = 85: x1 = 10: y1 = 590: lc = 40: hc = 20
ALPHA ocf-1: TOP ocf-1, y1-40: LEFT ocf-1, 10: CAPTION ocf-1, "Couleur"+CHR$(10)+" de"+CHR$(10)+"  remplissage"
PICTURE ocf: TOP ocf, y1: LEFT ocf, x1: WIDTH ocf, lc*2: HEIGHT ocf, hc*8
2D_TARGET_IS ocf
RESTORE
FOR j% = 0 TO 7
    FOR i% = 0 TO 1
        READ cr: READ cg: READ cb: 2D_FILL_COLOR cr,cg,cb
        2D_RECTANGLE i%*lc,j%*hc,i%*lc+lc,j%*hc+hc
    NEXT i%
NEXT j%
ON_CLICK ocf, Coulfond
PICTURE ocf+1: TOP ocf+1, y1-40: LEFT ocf+1, x1+lc: WIDTH ocf+1, lc: HEIGHT ocf+1, lc-15
2D_TARGET_IS ocf+1: 2D_PEN_COLOR 0,0,0: 2D_RECTANGLE 0,0,lc,lc-15

OPEN_DIALOG 90
FILTER 90,"Images *.bmp *.jpg|*.bmp|*.jpg"
SAVE_DIALOG 91
FILTER 91,"Image *.bmp|*.bmp"
FOR i% = 1 TO nva
    IF FILE_EXISTS(fa$(i%)) = 1 THEN FILE_DELETE fa$(i%)
NEXT i%

FORM 96: TOP 96, 60: LEFT 96, 50: HEIGHT 96, 245: WIDTH 96, 260: HIDE 96
CAPTION 96, "Police/Taille"
LIST 97: PARENT 97, 96: TOP 97, 5: HEIGHT 97, 90: WIDTH 97, 150
FONT_NAMES_LOAD 97: ON_CLICK 97, vfont
SPIN 98: PARENT 98, 96: TOP 98, 5: LEFT 98, 160: WIDTH 98, 60: MAX 98, 30
POSITION 98, 10: MIN 98, 6: MAX 98, 30: ON_CLICK 98, vfont
BUTTON 99: PARENT 99, 96: TOP 99, 74: LEFT 99, 160: WIDTH 99, 80
CAPTION 99, "OK": ON_CLICK 99, Texte
LIST 100: PARENT 100, 96: TOP 100, 100: WIDTH 100, 240: HEIGHT 100, 40
font$ = "Bitstream Vera Sans Mono": fsz% = 10
FONT_NAME 100, font$: FONT_SIZE 100, fsz%: COLOR 100, 255,128,128
ITEM_ADD 100, font$
ITEM_ADD 100, "Voyez le Brick Géant Que J'examine Près du Wharf"
ALPHA 101: PARENT 101, 96: TOP 101, 140: CAPTION 101, " Saisir le texte:"
EDIT 102: PARENT 102, 96: TOP 102, 156: WIDTH 102, 240
CHECK 103: PARENT 103, 96: TOP 103, 30: LEFT 103, 160: WIDTH 103, 80: CAPTION 103, "Gras"
CHECK 104: PARENT 104, 96: TOP 104, 45: LEFT 104, 160: WIDTH 104, 80: CAPTION 104, "Italique"
CHECK 105: PARENT 105, 96: TOP 105, 60: LEFT 105, 160: WIDTH 105, 80: CAPTION 105, "Souligné"
PICTURE 106: LEFT 106, -900: WIDTH 106, 890: HEIGHT 106, 100
ALPHA 107: PARENT 107, 96: TOP 107, 176: WIDTH 107, 240
CAPTION 107, " Après saisie, clic le bouton 'OK', puis clic" + CHR$(10)+" l'emplacement sur la feuille (patience, c'est long !)"

2D_TARGET_IS 0: 2D_RECTANGLE mg-1,3,mg+wp+1,5+hp
2D_TARGET_IS pic: CLS
nti% = 120: TIMER nti%
TIMER_INTERVAL nti%,40
ON_TIMER nti%, time
END
' ------------------------------------------------------------------------------
time:
CAPTION 0,f$ + "  X= "+STR$(MOUSE_X_POSITION(pic))+" Y= "+STR$(MOUSE_Y_POSITION(pic))
FOR i% = o1+1 TO o1+6
    IF CHECKED(i%) = 1 THEN EXIT_FOR
NEXT i%
fig = i%-o1
IF MOUSE_LEFT_DOWN(pic) = 1
    FILE_SAVE pic,fa$(na): 2D_PEN_DOT: 2D_PEN_COLOR tr,tg,tb: 2D_PEN_WIDTH 1
    x1=MOUSE_X_POSITION(pic): y1=MOUSE_Y_POSITION(pic)
    truc = 1
END_IF
IF MOUSE_LEFT_UP(pic) = 1
    FILE_LOAD pic,fa$(na): 2D_PEN_SOLID
    FOR i% = o2+1 TO o2+5
        IF CHECKED(i%)= 1 THEN EXIT_FOR
    NEXT i%
    2D_PEN_WIDTH i%-o2
    SELECT fig
        CASE 1: GOSUB Ligne
        CASE 2: GOSUB Rectvide
        CASE 3: GOSUB Rectplein
        CASE 4: GOSUB Cercvide
        CASE 5: GOSUB Cercplein
        CASE 6: GOSUB Texte
    END_SELECT
    na = na + 1: IF na > nva THEN na = 1
    FILE_SAVE pic,fa$(na)
    truc=0
END_IF
IF truc = 1
    x2=MOUSE_X_POSITION(pic): y2=MOUSE_Y_POSITION(pic)
    IF x2=x3 AND y2=y3 THEN RETURN
    FILE_LOAD pic,fa$(na)
    SELECT fig
        CASE 1: GOSUB Ligne
        CASE 2: GOSUB Rectvide
        CASE 3: GOSUB Rectplein
        CASE 4: GOSUB Cercvide
        CASE 5: GOSUB Cercplein
        CASE 6: GOSUB Texte
    END_SELECT
    x3=MOUSE_X_POSITION(pic)
    y3=MOUSE_Y_POSITION(pic)
END_IF
RETURN

Ligne:
2D_LINE x1,y1,x2,y2
RETURN

Rectplein:
2D_RECTANGLE x1,y1,x2,y2
RETURN

Rectvide:
2D_LINE x1,y1,x2,y1:2D_POLY_TO x2,y2:2D_POLY_TO x1,y2:2D_POLY_TO x1,y1
RETURN

Cercplein:
2D_CIRCLE x1,y1,SQR(POWER(x2-x1,2) + POWER(y2-y1,2))
RETURN

Cercvide:
r = SQR(POWER(x2-x1,2) + POWER(y2-y1,2)): IF r = 0 THEN RETURN
x = x1+r: y = y1
pas = 1: IF r>20 THEN pas = 10/r
FOR a = pas TO 2*pi+pas STEP pas
    xa = x1+r*COS(a): ya = y1+r*SIN(a): 2D_LINE x,y,xa,ya: x=xa: y=ya
NEXT a
RETURN

Texte:
HIDE 96
IF ITEM_INDEX(97) > 0 THEN font$ = ITEM_INDEX$(97)
fsz% = POSITION(98)
txt$ = TEXT$(102)
IF txt$ = "" THEN TIMER_ON nti%: RETURN
WHILE MOUSE_LEFT_DOWN(pic) = 0: WAIT 100: END_WHILE
WHILE MOUSE_LEFT_UP(pic) = 0
    x1 = MOUSE_X_POSITION(pic)
    y1 = MOUSE_Y_POSITION(pic)
    WAIT 100
END_WHILE
CURSOR_HOURGLASS pic
PRINT_TARGET_IS 106: COLOR 106, 254,254,254
FONT_NAME 106, font$: FONT_SIZE 106, fsz%: FONT_COLOR 106, tr,tg,tb
FONT_BOLD_OFF 106: FONT_ITALIC_OFF 106: FONT_UNDERLINE_OFF 106
IF CHECKED(103) = 1 THEN FONT_BOLD 106
IF CHECKED(104) = 1 THEN FONT_ITALIC 106
IF CHECKED(105) = 1 THEN FONT_UNDERLINE 106
PRINT_LOCATE 0,0: PRINT txt$
hc% = INT(fsz%*1.5): IF FRAC(fsz%*1.5) >= .5 THEN hc% = hc% + 1
IF fsz% < 9
    lc% = fsz%-1: IF fsz% = 7 THEN lc% = lc% - 1
ELSE
    lc% = INT(fsz%/1.25): IF FRAC(fsz%/1.25) >= .5 THEN lc% = lc% + 1
END_IF
lc% = lc% * LEN(txt$): ' longueur du texte, en pixels
FOR j% = 0 TO hc%-1
    FOR i% = 0 TO lc%-1
        pr% = COLOR_PIXEL_RED(106,i%,j%)
        pg% = COLOR_PIXEL_GREEN(106,i%,j%)
        pb% = COLOR_PIXEL_BLUE(106,i%,j%)
        ' IF pr%<>254 OR pg%<>254 OR pb%<>254
        IF pr% = tr and pg% = tg and pb% = tb
            2D_PEN_COLOR pr%,pg%,pb%: 2D_POINT x1+i%, y1+j%
        END_IF
    NEXT i%
NEXT j%
CURSOR_DEFAULT pic
na = na + 1: IF na > nva THEN na = 1
FILE_SAVE pic,fa$(na)
TIMER_ON nti%
RETURN

Coultrac:
xa = MOUSE_X_LEFT_DOWN(oct): ya = MOUSE_Y_LEFT_DOWN(oct)
j% = INT(ya/hc): i% = INT(xa/lc): c = 2*j% + i%: ' couleur 0 à 15
RESTORE
FOR i% = 0 TO c*3: READ tr: NEXT i%: READ tg: READ tb
2D_PEN_COLOR tr,tg,tb
COLOR oct+1, tr,tg,tb
RETURN

Coulfond:
xa = MOUSE_X_LEFT_DOWN(ocf): ya = MOUSE_Y_LEFT_DOWN(ocf)
j% = INT(ya/hc): i% = INT(xa/lc): c = 2*j% + i%: ' couleur 0 à 15
RESTORE
FOR i% = 0 TO c*3: READ cr: NEXT i%: READ cg: READ cb
2D_FILL_COLOR cr,cg,cb
COLOR ocf+1, cr,cg,cb
RETURN

New:
TIMER_OFF nti%
i% = MESSAGE_CONFIRMATION_YES_NO("Effacer le dessin en cours ?")
IF i% = 1 THEN CLS
TIMER_ON nti%
RETURN

Opn:
TIMER_OFF nti%
f$ = FILE_NAME$(90)
IF f$ = "_" OR f$ = "" THEN TIMER_ON nti%: RETURN
' Si les images chargées (bmp ou jpg) dépassent le cadre du picture, elles sont
' redimensionnées de façon proportionnelle (IrfanView).
GOSUB Iminfo: ' wi, hi largeur et hauteur d'origine de l'image
ra = wi/hi
IF wi > wp OR hi > hp
    ' réduction de l'image aux dimensions de la feuille
    wn = wp: hn = INT(wn/ra)
    IF hn > hp THEN hn = hp: wn = hn * ra
    m$ = " /resize=("+STR$(wn)+",0) /aspectratio /convert="+fa$(na)
    EXECUTE_WAIT iv$ + f$ + m$
    f$ = fa$(na)
END_IF
FILE_LOAD pic, f$
FILE_SAVE pic, fa$(na)
TIMER_ON nti%
RETURN

Enr:
IF f$ = "" OR f$ = "_" THEN RETURN
IF UPPER$(RIGHT$(f$, 4)) <> ".BMP" THEN GOTO Ens
TIMER_OFF nti%
FILE_SAVE pic, f$
TIMER_ON nti%
RETURN

Ens:
TIMER_OFF nti%
' enregistrement au format bmp exclusivement.
m$ = FILE_NAME$(91)
IF m$ = "_" OR m$= "" THEN TIMER_ON nti%: RETURN
f$ = m$: FILE_SAVE pic, f$
TIMER_ON nti%
RETURN

Imp:
TIMER_OFF nti%
i% = MESSAGE_CONFIRMATION_YES_NO("Prêt pour impression ?")
IF i% <> 1 THEN TIMER_ON nti%: RETURN
FILE_OPEN_WRITE 1, fp$
  FILE_WRITELN 1, "<#image="+fm$+",3,3,204,289#>"
FILE_CLOSE 1
EXECUTE_WAIT wp$ + "/file="+fp$+" /noshow"
TIMER_ON nti%
RETURN

Quit:
TERMINATE
RETURN

Anul:
' annulation en boucle sur nva (=5) éléments
na = na - 1: IF na < 1 THEN na = nva
FILE_LOAD pic, fa$(na)
RETURN

Iminfo:
EXECUTE_WAIT iv$ + f$ + " /info=" + fz$
FILE_OPEN_READ 1, fz$
WHILE FILE_EOF(1) = 0
    FILE_READLN 1, m$: IF LEFT$(m$, 6) = "Image " THEN EXIT_WHILE
END_WHILE
FILE_CLOSE 1: FILE_DELETE fz$
m$ = MID$(m$, 20, LEN(m$)): i% = INSTR(m$, " ")
wi = VAL(LEFT$(m$, i%-1)): m$ = MID$(m$, i%+3, LEN(m$)): i% = INSTR(m$, " ")
hi = VAL(LEFT$(m$, i%-1))
RETURN

Redim:

RETURN

chp:
TIMER_OFF nti%
SHOW 96
RETURN

vfont:
CLEAR 100
IF ITEM_INDEX(97) > 0 THEN font$ = ITEM_INDEX$(97)
fsz% = POSITION(98)
FONT_NAME 100, font$: FONT_SIZE 100, fsz%
ITEM_ADD 100, font$
ITEM_ADD 100, "Voyez le Brick Géant Que J'examine Près du Wharf"
RETURN
' +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
vlf:
IF ITEM_INDEX(97) > 0 THEN font$ = ITEM_INDEX$(97)
fsz% = POSITION(98)
txt$ = TEXT$(102)
HIDE 96
GOSUB Texte
RETURN

Hlp:
TIMER_OFF nti%
m$ = CHR$(9) + CHR$(9) + "AIDE" + CHR$(10) + CHR$(9) + CHR$(9) + "===" + CHR$(10) + CHR$(10)
m$ = m$ + "Modification des paramètres:" + CHR$(10)
m$ = m$ + "~~~~~~~~~~~~~~~~~~~" + CHR$(10)
m$ = m$ + "- Largeur de trait: de 1 à 5 pixels" + CHR$(10)
m$ = m$ + "- Couleur du trait ou couleur du fond:" + CHR$(10)
m$ = m$ + "  Clic la couleur désirée parmi les 16 couleurs de base" + CHR$(10) + CHR$(10)
m$ = m$ + "Dessin des éléments:" + CHR$(10)
m$ = m$ + "~~~~~~~~~~~~~~" + CHR$(10)
m$ = m$ + "  Clic le départ, maintenir enfoncé, déplacer, relâcher à l'arrivée." + CHR$(10)
m$ = m$ + "1_ Ligne: Clic le départ, maintenir, relâcher à l'arrivée." + CHR$(10)
m$ = m$ + "2_ Rectangle: Clic un coin, maintenir, relâcher au coin opposé." + CHR$(10)
m$ = m$ + "3_ Cercle: Clic le centre, maintenir, relâcher sur un point du cercle." + CHR$(10)
m$ = m$ + CHR$(10)
m$ = m$ + "Menu:" + CHR$(10)
m$ = m$ + "~~~~" + CHR$(10)
m$ = m$ + "- Fichier: fonctions classiques." + CHR$(10)
m$ = m$ + "- Edition: Annulation de la dernière opération (profondeur = 5)" + CHR$(10)
m$ = m$ + "- Aide: affichage de ce texte." + CHR$(10) + CHR$(10)
m$ = m$ + "Remarques:" + CHR$(10)
m$ = m$ + "~~~~~~~~" + CHR$(10)
m$ = m$ + "- On peut charger une image BMP ou JPG." + CHR$(10)
m$ = m$ + "  L'image sera éventuellement redimensionnée de manière proportionnelle" + CHR$(10)
m$ = m$ + "  pour tenir dans le cadre." + CHR$(10)
m$ = m$ + "  On peut dessiner les figures géométriques de base sur l'image chargée" + CHR$(10)
m$ = m$ + "  (par exemple un cadre, etc.), puis sauvegarder le résultat," + CHR$(10)
m$ = m$ + "  exclusivement au format BMP." + CHR$(10)
MESSAGE m$
TIMER_ON nti%
RETURN

Apr:
TIMER_OFF nti%
MESSAGE "JL35 - Novembre 2010"
TIMER_ON nti%
RETURN

Edité 29/11 23h05


Dernière édition par JL35 le Lun 29 Nov 2010 - 23:06, édité 4 fois
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2695
Date d'inscription : 13/09/2009

Un petit programme de dessin sans prétention Empty
MessageSujet: +++   Un petit programme de dessin sans prétention EmptySam 27 Nov 2010 - 18:11

Sans prétention...
mais un joli petit programme de dessin quand même.
Bravo !
sunny
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
JL35




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

Un petit programme de dessin sans prétention Empty
MessageSujet: Re: Un petit programme de dessin sans prétention   Un petit programme de dessin sans prétention EmptySam 27 Nov 2010 - 18:22

Merci jj, je vois qu'il y en a au moins un qui suit ! Very Happy
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12293
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Un petit programme de dessin sans prétention Empty
MessageSujet: Re: Un petit programme de dessin sans prétention   Un petit programme de dessin sans prétention EmptySam 27 Nov 2010 - 18:56

C'est très réussi. Je le garde pour mes usages personnels. Belle initiative.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html En ligne
Jean Claude

Jean Claude


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

Un petit programme de dessin sans prétention Empty
MessageSujet: Re: Un petit programme de dessin sans prétention   Un petit programme de dessin sans prétention EmptySam 27 Nov 2010 - 20:40

@JL35,

1) tu as une mauvaise note de ma part, car une fois de plus ton fichier F$ se trouve dans une partition "Z".
et çà c'est pas bon pour les novices qui se demandent pourquoi çà marche pas.
f$ = "Z:\Image.bmp": ' image résultat (remplacez Z par C)

2) tu as une BONNE note de ma part, car tu fais avancer très fort l'idée de Nicolas.

@tous,
Le petit programme de Nicolas m'a fait penser que çà serais super de pouvoir l'utiliser pour faire des Frame(s), mais c'est peut être ce qu'il recherche....

A+
Revenir en haut Aller en bas
JL35




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

Un petit programme de dessin sans prétention Empty
MessageSujet: Re: Un petit programme de dessin sans prétention   Un petit programme de dessin sans prétention EmptySam 27 Nov 2010 - 23:35

C'est bien connu, mais je le répète, que je mets en tête les noms de chemins à changer à sa façon, première chose à vérifier.
Ensuite tu sais bien que j'aime bien ma partition Z: qui je le répète est une portion de la mémoire vive (32M) déclarée comme volume indépendant, dont le contenu est perdu à chaque extinction, mais ça ne laisse rien traîner sur le disque dur, c'est bien pratique comme zone de manoeuvre pour des fichiers temporaires.
Revenir en haut Aller en bas
dragonno




Nombre de messages : 341
Localisation : Près de Toulouse
Date d'inscription : 22/01/2009

Un petit programme de dessin sans prétention Empty
MessageSujet: Re: Un petit programme de dessin sans prétention   Un petit programme de dessin sans prétention EmptySam 27 Nov 2010 - 23:50

Citation :
f$ = "Z:\Image.bmp": ' image résultat (remplacez Z par C)
Le mieux c'est de rien mettre comme nom de disque, de laisser juste le nom du fichier bmp :

Code:
f$="Image.bmp"

Mais il faut que l'image soit dans le dossier du programme de dessin.

(pour les débutants) faire un dossier pour chaque programme que vous testez avec panoramic, sinon les images de chaque programme seront ensembles et pas beau tout ça Wink
En plus, si vous devez charger rapidement les images (pour une animation par exemple) évitez de mettre les images de l'animation dans un sous-dossier du dossier du programme que vous testez, par exemple :
"bmp/Image.bmp" car votre animation sera très lente, même en compilation application.


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

Un petit programme de dessin sans prétention Empty
MessageSujet: Re: Un petit programme de dessin sans prétention   Un petit programme de dessin sans prétention EmptyDim 28 Nov 2010 - 9:18

Oui, je suis d'accord avec toi Dragonno, si on ne garde que le nom du fichier "image.bmp" cela présente également l'avantage d'avoir le fichier directement sur le bureau. Après on en fait ce que l'on veut.

@JL35,
Je découvre que ta partition "Z" se trouve dans dans la mémoire vive. Je pensais que c'était un espace réservé sur le disque dur. C'est donc à utiliser avec précaution, si on ne veut pas perdre des fichiers, mais très utile pour tester des codes. Bon, je t'enlève la mauvaise note

pirat A+
Revenir en haut Aller en bas
JL35




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

Un petit programme de dessin sans prétention Empty
MessageSujet: Re: Un petit programme de dessin sans prétention   Un petit programme de dessin sans prétention EmptyDim 28 Nov 2010 - 13:59

Gros avantage: accès très rapide (pas d'accès disque), et ça ne laisse aucune trace.
Inconvénient: ça ne laisse aucune trace.
Mais je le sais, je l'utilise en conséquence, et jusqu'ici (j'ai toujours installé ça sur toutes mes machines) je n'ai jamais rien perdu d'essentiel.

Quant aux fichiers temporaires et de manoeuvre, c'est à chacun de décider où il doit les mettre, n'importe quel programmeur de base sait manipuler les répertoires et les fichiers, et sait où il range ses affaires.
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

Un petit programme de dessin sans prétention Empty
MessageSujet: Re: Un petit programme de dessin sans prétention   Un petit programme de dessin sans prétention EmptyDim 28 Nov 2010 - 14:09

En fait, tu es vraiment très fort car tu reussis à créer un truc dont le principal avantage est son principal inconvénient.

Very Happy Very Happy Very Happy Very Happy
Revenir en haut Aller en bas
JL35




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

Un petit programme de dessin sans prétention Empty
MessageSujet: Re: Un petit programme de dessin sans prétention   Un petit programme de dessin sans prétention EmptyDim 28 Nov 2010 - 14:54

Oui, je suis le premier à le reconnaître Very Happy
Revenir en haut Aller en bas
JL35




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

Un petit programme de dessin sans prétention Empty
MessageSujet: Re: Un petit programme de dessin sans prétention   Un petit programme de dessin sans prétention EmptyDim 28 Nov 2010 - 22:33

Mon petit programme de dessin sans prétention devient un peu plus prétentieux:
- J'ai ajouté un menu, avec sauvegarde du dessin, ou impression (menu Fichier)
- La page de dessin est aux proportions d'une feuille A4
- Et surtout le menu Edition, avec possibilité d'annuler les dernières opérations (jusqu'à 5, en boucle)

C'est tout pour le moment !

Edit du 29:

- Les images chargées (bmp ou jpg) sont redimensionnées pour tenir dans le cadre. On peut donc dessiner dessus tant qu'on veut, dans les bonnes proportions, mais la sauvegarde se fera au nouveau format (redimensionné, donc), et exclusivement au format bmp (contrainte File_Save).

- Un truc que j'avais oublié, c'est de désactiver le Timer pendant les opérations d'entrées/sorties (accès disque, dialogues...), ce qui mettait parfois la pagaille. C'est maintenant réparé.

J'ai également ajouté l'appel à deux modules externes:
- IrfanView, bien connu, pour redimensionner les images (je ne sais pas faire autrement).
- WinTextPrint de Klaus, irremplaçable, pour l'impression éventuelle.
Revenir en haut Aller en bas
dragonno




Nombre de messages : 341
Localisation : Près de Toulouse
Date d'inscription : 22/01/2009

Un petit programme de dessin sans prétention Empty
MessageSujet: Re: Un petit programme de dessin sans prétention   Un petit programme de dessin sans prétention EmptyLun 29 Nov 2010 - 22:48

ça commence à devenir un super bon truc ton petit logiciel de dessin Wink

Je savais pas que panoramic pouvait charger des jpg ?

J'aime bien cette remarque :
Citation :
Gros avantage: ça ne laisse aucune trace.
Inconvénient: ça ne laisse aucune trace.
lol!
Revenir en haut Aller en bas
JL35




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

Un petit programme de dessin sans prétention Empty
MessageSujet: Re: Un petit programme de dessin sans prétention   Un petit programme de dessin sans prétention EmptyLun 29 Nov 2010 - 23:09

On peut charger des bmp ou des jpg, mais on ne peut sauvegarder qu'en bmp.

Et pour la peine, j'ai rajouté la possibilité de superposer des textes, ce n'est pas parfait (très long: pixel par pixel), mais c'est utilisable.
Il faut saisir le texte, puis OK, puis cliquer à l'endroit de l'insertion et attendre patiemment.
Le texte est de la couleur d'avant-plan (trait).
Revenir en haut Aller en bas
dragonno




Nombre de messages : 341
Localisation : Près de Toulouse
Date d'inscription : 22/01/2009

Un petit programme de dessin sans prétention Empty
MessageSujet: Re: Un petit programme de dessin sans prétention   Un petit programme de dessin sans prétention EmptyLun 29 Nov 2010 - 23:12

Puisque c'est pixel par pixel, vivement qu'arrive la copie d'image 2D, ça permettra de mettre du texte sur des images rapidement.
Revenir en haut Aller en bas
Contenu sponsorisé





Un petit programme de dessin sans prétention Empty
MessageSujet: Re: Un petit programme de dessin sans prétention   Un petit programme de dessin sans prétention Empty

Revenir en haut Aller en bas
 
Un petit programme de dessin sans prétention
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» un petit programme musical
» Animate : Montage d'un petit dessin animé
» Un petit jeu d'échec sans IA
» Un petit programme pour GRID
» Numerotation ligne de programme

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: