Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Panoramic-Draw | |
| | |
Auteur | Message |
---|
lodchjo
Nombre de messages : 162 Age : 53 Localisation : Anvers Date d'inscription : 26/12/2011
| Sujet: Panoramic-Draw Dim 29 Jan 2012 - 22:34 | |
| Bonjour! Ça faisait longtemps que j'avais l'idée de faire un logiciel de dessin qui ne fonctionne pas avec des pixels, mais avec des instructions. Voilà j'ai créé un logiciel pour faire des dessins a base d'instructions de Panoramic même. En plus, ce logiciel peut sauvegarder ces dessins comme une liste d'instructions que vous pouvez intégrer dans vos logiciels panoramic direct. On peut même ouvrir les fichiers ainsi créés direct dans l'editeur de panoramic vierge et les exécuter toute de suite sans aucun rajout d'instructions et ton dessin sera refait! - Code:
-
label pen, fill, tpen, tfill, tst, wis, pw, pos, grd, pnst, abt, ld, sv, err dim x, y, a$, xpos, ypos, ctr, pn$, kl$, fl$, pns, fs$, i$(10) on_error_goto err data "2d_circle", "2d_flood", "2d_line", "2d_point", "2d_rectangle" data "2d_pen_dash", "2d_pen_dash_dot", "2d_pen_dash_dot_dot", "2d_pen_dot", "2d_pen_solid" caption 0,"Panoramic Draw" width 0,240 height 0,500 color 0, 255,255,255 main_menu 50 sub_menu 51:parent 51,50:caption 51,"Load":on_click 51,ld sub_menu 52:parent 52,50:caption 52,"Save":on_click 52,sv sub_menu 53:parent 53,50:caption 53,"Grid":on_click 53,grd sub_menu 54:parent 54,50:caption 54,"Clear":on_click 54,wis sub_menu 55:parent 55,50:caption 55,"Help":on_click 55,abt open_dialog 60 save_dialog 61 form 1:color 1,255,255,255 left 1,240:height 1,500:width 1,500 combo 2 top 2,5:left 2,5:width 2,120:height 2,25 for x = 1 to 5 read a$ item_add 2, a$ next x alpha 3 left 3,3:top 3,33:width 3,10:caption 3,"X1" edit 4 left 4,20:top 4,30:width 4,30 alpha 5 left 5,55:top 5,33:width 5,10:caption 5,"Y1" edit 6 left 6,75:top 6,30:width 6,30 alpha 7 left 7,125:top 7,33:width 7,10:caption 7,"X2" edit 8 left 8,145:top 8,30:width 8,30 alpha 9 left 9,180:top 9,33:width 9,10:caption 9,"Y2" edit 10 left 10,200:top 10,30:width 10,30 alpha 11 left 11,140:top 11,8:width 11,30:caption 11,"Radius: " edit 12 left 12,180:top 12,5:width 12,50 container 13 left 13,3:top 13,60:width 13,225:height 13,95 alpha 14:parent 14,13:font_bold 14 left 14,10:top 14,1:width 14,10:caption 14," Pen color " alpha 15:parent 15,13 left 15,5:top 15,20:width 15,20:caption 15,"Red" scroll_bar 16:parent 16,13:min 16,0:max 16,255:position 16,0:on_change 16,pen left 16,40:top 16,20:width 16,145 edit 17:parent 17,13:text 17,"0": on_change 17,tpen left 17,190:top 17,18:width 17,30 alpha 18:parent 18,13 left 18,5:top 18,45:width 18,20:caption 18,"Green" scroll_bar 19:parent 19,13:min 19,0:max 19,255:position 19,0:on_change 19,pen left 19,40:top 19,45:width 19,145 edit 20:parent 20,13:text 20,"0":on_change 20,tpen left 20,190:top 20,43:width 20,30 alpha 21:parent 21,13 left 21,5:top 21,70:width 21,20:caption 21,"Blue" scroll_bar 22:parent 22,13:min 22,0:max 22,255:position 22,0:on_change 22,pen left 22,40:top 22,70:width 22,145 edit 23:parent 23,13:text 23,"0":on_change 23,tpen left 23,190:top 23,68:width 23,30 alpha 24 left 24,3:top 24,163:width 24,50:caption 24,"PenWidth:" edit 25:text 25,"1":on_change 25,pw left 25,55:top 25,160:width 25,30 alpha 26 left 26,87:top 26,163:width 26,25:caption 26,"Style:" combo 27:on_change 27,pnst left 27,115:top 27,160:width 27,115 for x = 1 to 5 read a$ item_add 27, a$ next x container 28 left 28,3:top 28,185:width 28,225:height 28,95 alpha 29:parent 29,28:font_bold 29 left 29,10:top 29,1:width 29,10:caption 29," Fill color " alpha 30:parent 30,28 left 30,5:top 30,20:width 30,20:caption 30,"Red" scroll_bar 31:parent 31,28:min 31,0:max 31,255:position 31,255:on_change 31,fill left 31,40:top 31,20:width 31,145 edit 32:parent 32,28:text 32,"255":on_change 32,tfill left 32,190:top 32,18:width 32,30 alpha 33:parent 33,28 left 33,5:top 33,45:width 33,20:caption 33,"Green" scroll_bar 34:parent 34,28:min 34,0:max 34,255:position 34,255:on_change 34,fill left 34,40:top 34,45:width 34,145 edit 35:parent 35,28:text 35,"255":on_change 35,tfill left 35,190:top 35,43:width 35,30 alpha 36:parent 36,28 left 36,5:top 36,70:width 36,20:caption 36,"Blue" scroll_bar 37:parent 37,28:min 37,0:max 37,255:position 37,255:on_change 37,fill left 37,40:top 37,70:width 37,145 edit 38:parent 38,28:text 38,"255":on_change 38,tfill left 38,190:top 38,65:width 38,30 button 39:caption 39,"Draw!":on_click 39,tst left 39,3:top 39,282:width 39,225 memo 41 left 41,3:top 41,310:width 41,225:height 41,133 timer 42:timer_interval 42,10:timer_on 42:on_timer 42,pos end
pen: text 17, str$(position (16)) text 20, str$(position (19)) text 23, str$(position (22)) font_color 14,position (16), position (19), position (22) return
tpen: position 16, val(text$(17)) position 19, val(text$(20)) position 22, val(text$(23)) font_color 14,position (16), position (19), position (22) return
fill: text 32, str$(position (31)) text 35, str$(position (34)) text 38, str$(position (37)) color 29,position (31), position (34), position (37) return
tfill: position 31, val(text$(32)) position 34, val(text$(35)) position 37, val(text$(38)) color 29,position (31), position (34), position (37) return
rem err: rem return
wis: pns=0 pn$="" kl$="" fl$="" 2d_target_is 1 2d_pen_color 255,255,255 2d_fill_color 255,255,255 2d_rectangle 0,0,width(1),height(1) for x=0 to count(41) item_delete 41,1 next x return
grd: 2d_target_is 1 2d_pen_color 240,240,240 for x=0 to height(1) step 10 2d_line 0,x,width(1),x next x for x=0 to width(1) step 10 2d_line x,0,x,height(1) next x return
pos: caption 1, "CANVAS - x: "+str$(mouse_x_position(1))+" y: "+str$(mouse_y_position(1)) if mouse_right_up(1)=1 text 8, str$(mouse_x_right_down(1)) text 10, str$(mouse_y_right_down(1)) end_if if mouse_left_up (1)=1 text 4, str$(mouse_x_left_down(1)) text 6, str$(mouse_y_left_down(1)) end_if return
pw: if val(text$(25))>20 then text 25, 20 return
tst: gosub pnst 2d_target_is 1 if text$(25)<>"" then 2d_pen_width val(text$(25)) 2d_pen_color val(text$(17)),val(text$(20)),val(text$(23)) 2d_fill_color val(text$(32)),val(text$(35)),val(text$(38)) if pn$<>text$(25) then pn$=text$(25):item_add 41, "2d_pen_width "+pn$ if pns<>item_index(27) then item_add 41, item_index$(27) if kl$<>text$(17)+","+text$(20)+","+text$(23) then kl$=text$(17)+","+text$(20)+","+text$(23):item_add 41, "2d_pen_color "+kl$ if fl$<>text$(32)+","+text$(35)+","+text$(38) then fl$=text$(32)+","+text$(35)+","+text$(38):item_add 41, "2d_fill_color "+fl$ x=item_index(2) select x case 1 2d_circle val(text$(4)),val(text$(6)),val(text$(12)) item_add 41, "2d_circle "+text$(4)+","+text$(6)+","+text$(12) case 2 2d_flood val(text$(4)),val(text$(6)),val(text$(32)),val(text$(35)),val(text$(38)) item_add 41, "2d_flood "+text$(4)+","+text$(6)+","+text$(32)+","+text$(35)+","+text$(38) case 3 2d_line val(text$(4)),val(text$(6)),val(text$(8)),val(text$(10)) item_add 41, "2d_line "+text$(4)+","+text$(6)+","+text$(8)+","+text$(10) case 4 2d_point val(text$(4)),val(text$(6)) item_add 41, "2d_point "+text$(4)+","+text$(6) case 5 2d_rectangle val(text$(4)),val(text$(6)),val(text$(8)),val(text$(10)) item_add 41, "2d_rectangle "+text$(4)+","+text$(6)+","+text$(8)+","+text$(10) end_select return
pnst: x=item_index(27) select x case 1 2d_pen_dash case 2 2d_pen_dash_dot case 3 2d_pen_dash_dot_dot case 4 2d_pen_dot case 5 2d_pen_solid end_select return
abt: message "Panoramic Draw. Programmed by Lode Van de Velde."+chr$(13)+chr$(13)+"- Left-click on canvas selects X1/Y1-coordinates. "+chr$(13)+"- Right-click on canvas selects X2/Y2-coordinates."+chr$(13)+"- Mind that 'flood' does not work well with the grid turned on!" return
err: return
ld: timer_off 42 gosub wis fs$ = File_Name$(60) file_load 41,fs$ for x=1 to count(41) a$=ltrim$(rtrim$(item_read$(41,x)))+",0,0,0,0,0,0,0,0" if instr(a$," ")<>0 then i$(1)=left$(a$,instr(a$," ")-1):a$=right$(a$,len(a$)-instr(a$," ")) if instr(a$,",")<>0 then i$(2)=left$(a$,instr(a$,",")-1):a$=right$(a$,len(a$)-instr(a$,",")) if instr(a$,",")<>0 then i$(3)=left$(a$,instr(a$,",")-1):a$=right$(a$,len(a$)-instr(a$,",")) if instr(a$,",")<>0 then i$(4)=left$(a$,instr(a$,",")-1):a$=right$(a$,len(a$)-instr(a$,",")) if instr(a$,",")<>0 then i$(5)=left$(a$,instr(a$,",")-1):a$=right$(a$,len(a$)-instr(a$,",")) if instr(a$,",")<>0 then i$(6)=left$(a$,instr(a$,",")-1) if item_read$(41,x)="2d_pen_dash" then 2d_pen_dash if item_read$(41,x)="2d_pen_dash_dot" then 2d_pen_dash_dot if item_read$(41,x)="2d_pen_dash_dot_dot" then 2d_pen_dash_dot_dot if item_read$(41,x)="2d_pen_dot" then 2d_pen_dot if item_read$(41,x)="2d_pen_solid" then 2d_pen_solid if i$(1)="2d_pen_width" then 2d_pen_width val(i$(2)) if i$(1)="2d_pen_color" then 2d_pen_color val(i$(2)),val(i$(3)),val(i$(4)) if i$(1)="2d_fill_color" then 2d_fill_color val(i$(2)),val(i$(3)),val(i$(4)) if i$(1)="2d_circle" then 2d_circle val(i$(2)),val(i$(3)),val(i$(4)) if i$(1)="2d_point" then 2d_point val(i$(2)),val(i$(3)) if i$(1)="2d_rectangle" then 2d_rectangle val(i$(2)),val(i$(3)),val(i$(4)),val(i$(5)) if i$(1)="2d_line" then 2d_line val(i$(2)),val(i$(3)),val(i$(4)),val(i$(5)) if i$(1)="2d_flood" then 2d_flood val(i$(2)),val(i$(3)),val(i$(4)),val(i$(5)),val(i$(6)) for y=1 to 6 i$(y)="" next y next x timer_on 42 return
sv: fs$ = File_Name$(61) file_save 41, fs$ return
A savoir: - cliquez avec le bouton souris gauche sur le canvas pour capturer les coordinnées X1, Y1 - cliquez avec le bouton souris droite sur le canvas pour capturer les coordinnées X2, Y2 - attention: le grid n'est pas très compatible avec l'instruction "2d_flood" | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Panoramic-Draw Dim 29 Jan 2012 - 23:05 | |
| C'est un programme très intéressant que j'intègre dans ma programmathèque. Belle utilisation du timer pour détecter clic gauche et droit, visuellement impeccable avec les deux sélecteurs de couleurs et autres attributs graphiques. Bravo ! | |
| | | exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Panoramic-Draw Dim 29 Jan 2012 - 23:25 | |
| Merci Lodcho t'est un crack !
| |
| | | lodchjo
Nombre de messages : 162 Age : 53 Localisation : Anvers Date d'inscription : 26/12/2011
| Sujet: Re: Panoramic-Draw Mer 1 Fév 2012 - 9:59 | |
| La version 3d est en route! (Mais je ne la publierai qu'après le concours du mois de février sera fini.) | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Panoramic-Draw Sam 4 Fév 2012 - 20:39 | |
| Bravo | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Panoramic-Draw Sam 11 Fév 2012 - 21:20 | |
| Tu peux aussi enrichir ton programme avec quelques fonctions faites dans le logiciel de dessin de JL35 (genre pipette sur un nuancier pour le tracé par exemple pour pouvoir choisir la couleur autrement que par les ascenseurs (qu'ils faut garder aussi selon moi)) | |
| | | lodchjo
Nombre de messages : 162 Age : 53 Localisation : Anvers Date d'inscription : 26/12/2011
| Sujet: Re: Panoramic-Draw Dim 12 Fév 2012 - 9:35 | |
| - Jicehel a écrit:
- Tu peux aussi enrichir ton programme avec quelques fonctions faites dans le logiciel de dessin de JL35 (genre pipette sur un nuancier pour le tracé par exemple pour pouvoir choisir la couleur autrement que par les ascenseurs (qu'ils faut garder aussi selon moi))
Oui, d'accord! Ce que j'avais essayé d'abord, c'est de faire le "cercle chromatique" pour pipeter, mais c'est pas facile a réaliser. Si qq'un peut me donner les codes pour un cercle pas trop grand qui a une bonne palette de couleurs...? | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Panoramic-Draw Dim 12 Fév 2012 - 11:17 | |
| | |
| | | lodchjo
Nombre de messages : 162 Age : 53 Localisation : Anvers Date d'inscription : 26/12/2011
| Sujet: Re: Panoramic-Draw Dim 12 Fév 2012 - 11:58 | |
| Merci pour la recherche! J'en avais trouvé aussi des images, mais pour ne pas rendre le programme trop lourd et pouvoir l'executer sans fichiers externes, et surtout parce que c'est intrigant, je cherchait la code . (Une fois programmeur, toujours programmeur.) La difficulté c'est qu'on a 3 variables RGB pour un plan 2D, donc 2 variables... J'ai trouvé des codes, mais ils utilisent HSV (hue, saturation, value), en Français "Teinte Saturation Valeur" et ce n'était pas très utile. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Panoramic-Draw Dim 12 Fév 2012 - 12:44 | |
| Tu as le programme de Nardo pour le HSV, mais bon, ça utilise une DLL ... Sinon, il faudra faire une recherche avec des boucle, mais dans ce cas, mieux vaut partir sur un carré, c'est plus simple. On part d'un 0,0,0 à 0,0,255 sur une ligne (selon un pas à définir, par exemple Ligne du dessous 0,8,0 à 0,8,255 jusqu'à 255,255,0 ... 255,255,255 Ce n'est pas un cercle chromatique, c'est un nuancier, mais bon, ça ne prend que quelques lignes et ça permet de le programmer sans s'amuser à les sinus et les cos ... | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Panoramic-Draw Dim 12 Fév 2012 - 15:01 | |
| oh, quand même, c'est amusant les sinus et les cosinus ! Maintenant, même si ça ne doit pas être bien difficile à faire, si c'est pour cliquer dessus pour 'pipeter' une couleur, c'est sans doute plus facile de cliquer sur des carrés que sur des secteurs. | |
| | | exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Panoramic-Draw Dim 12 Fév 2012 - 17:06 | |
| ouais, je suis d'accord avec JL35, mieux les carrés !
| |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Panoramic-Draw Dim 12 Fév 2012 - 17:44 | |
| Bonjour à tous ! Maintenant que j'ai trouvé une manière pour simuler les procédures/fonctions avec passage de paramètres, je peux essayer de re-écrire la bibliothèque HSV en panoramic pur... si ça vous interesse... | |
| | | exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Panoramic-Draw Dim 12 Fév 2012 - 17:46 | |
| Montre ça ça m'interesse le passage de paramettre en procédures Pour le moment je me débrouillais avec les variables publiques, mais c'est pas top :/ | |
| | | lodchjo
Nombre de messages : 162 Age : 53 Localisation : Anvers Date d'inscription : 26/12/2011
| Sujet: Re: Panoramic-Draw Dim 12 Fév 2012 - 17:48 | |
| Voila ce que j'ai pu faire jusqu'a maintenant... - Code:
-
dim x,y form 1 width 1,255:height 1,225:left 1, 600 2d_target_is 1 for x=0 to 255 for y=0 to 255 step 4 2d_pen_color y,0,x 2d_point x,y/4 next y next x for x=0 to 255 for y=0 to 255 step 4 2d_pen_color 255-x,y,0 2d_point x,(255+y)/4 next y next x for x=0 to 255 for y=0 to 255 step 4 2d_pen_color 0,x,y 2d_point x,(511+y)/4 next y next x end | |
| | | exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Panoramic-Draw Dim 12 Fév 2012 - 17:51 | |
| Ouawou c'est beau ! Maintenant il reste un truc, c'est d'afficher en gros plan la couleur cliquée, afin de savoir ce que l'on fait | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Panoramic-Draw Lun 13 Fév 2012 - 0:36 | |
| Si tu veux un code pour le nuancier, tu peux ajuster les valeurs de celui-ci selon tes besoins: - Code:
-
dim i,x,y,z, pas : pas = 4 dim pasx, pasy, pasz : pasx=pas : pasy=pas*12 : pasz=pas*12 form 1: width 1,300:height 1,1024:left 1, 600 2d_target_is 1 2d_fill_solid: 2d_pen_width pas for z=0 to 255 step pasz for y=0 to 255 step pasy for x=0 to 255 step pasx 2d_pen_color x,y,z 2d_rectangle (x/pasx)*pas,(y/pasy)*pas+(z/pasz)*24, ((x/pasx)+1)*pas,((y/pasy)+1)*pas+(z/pasz)*24 next x next y next z end | |
| | | lodchjo
Nombre de messages : 162 Age : 53 Localisation : Anvers Date d'inscription : 26/12/2011
| Sujet: Re: Panoramic-Draw Lun 13 Fév 2012 - 10:32 | |
| Hm, très bien! J'ai experimenté aussi, et j'ai fait ce "velux multicolor" qui n'est pas mal, mais je vais quand-même utiliser tes codes sans modification, car ceci est trop lent je trouve: - Code:
-
dim i,x,y,z, pas : pas = 1 dim pasx, pasy, pasz : pasy=12 : pasz=12 form 1: width 1,255:height 1,540:left 1, 600 2d_target_is 1 2d_fill_solid: 2d_pen_width pas for z=0 to 255 step pasz for y=0 to 255 step pasy for x=0 to 255 2d_pen_color x,y,z 2d_point x,(y/pasy)+(z/pasz)*23 next x next y next z end
En tout cas, merci bien! Lode | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Panoramic-Draw Lun 13 Fév 2012 - 11:05 | |
| C'est la moindre des choses, j'aime beaucoup ton programme et il peut faire gagner pas mal de temps ... Une idée sur laquelle tu as pris Klaus, JL35, Nardo et Cosmos (Pour le moment Bignonon s'est spécailisé, je le mets à part exprès ) de court et ce n'est pas facile car ils en ont des tas de bonnes idées ... J'espère que tu continuera longtemps à faire parti de leur clan de créateurs... | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Panoramic-Draw Mer 15 Fév 2012 - 17:16 | |
| Bon comme promis, j'ai reécris la librairie couleur 100% en Panoramic Vous trouverez les sources sur: MyDriveusername : panoramic@nardo26 password : panoramic123 Tout ce trouve dans les répertoires: Panoramic\couleur (pour la démo) Panoramic\lib (pour les librairies) Pour le programme de démo : A vous d'adapter le chemin d'accès aux librairies en fonction de votre arborescence... Note : La fonction ColOpenForm n'est pas tout à fait stable (ça plante parfois et je n'ai pas encore trouvé d'explication ) | |
| | | lodchjo
Nombre de messages : 162 Age : 53 Localisation : Anvers Date d'inscription : 26/12/2011
| Sujet: Panoramic-Draw - VERSION 2!! Mer 15 Fév 2012 - 23:01 | |
| Bonjour, messieurs-dames Voila j'ai fabrique version 2 de "Panoramic-Draw". Les changements dans cette version: - ajout de palette couleurs html grace a JL35 et Nardo - ajout de 2d_fill styles (cross, diagonal, etc.) - possibilité de déplacer le canvas, les fenetres auxilières suivent le canvas - possibilté de modifier la taille du canvas, les fenetres auxilières s'adaptent - securité contre fermeture du canvas et palette couleurs - le canvas a été transformé en picture pour ne pas perdre le visuel Un grand merci pour JL35 et Nardo pour la palette couleur. S'il y a des commentaires, n"hésitez surtout pas! Bonne nuit! Lode - Code:
-
label pen, fill, tpen, tfill, tst, wis, pw, pos, grd, pnst, abt, ld, sv, flst, err dim x, y, a$, xpos, ypos, ctr, pn$, kl$, fl$, pns, fs$, i$(10), fls on_error_goto err data "2d_circle", "2d_flood", "2d_line", "2d_point", "2d_rectangle" data "2d_pen_dash", "2d_pen_dash_dot", "2d_pen_dash_dot_dot", "2d_pen_dot", "2d_pen_solid" data "2d_fill_cross", "2d_fill_diagonal_cross", "2d_fill_diagonal_down", "2d_fill_diagonal_up", "2d_fill_horizontal", "2d_fill_solid", "2d_fill_vertical" caption 0,"Panoramic Draw":border_small 0 width 0,240 height 0,600 color 0, 255,255,255 main_menu 50 sub_menu 51:parent 51,50:caption 51,"Load":on_click 51,ld sub_menu 52:parent 52,50:caption 52,"Save":on_click 52,sv sub_menu 53:parent 53,50:caption 53,"Grid":on_click 53,grd sub_menu 54:parent 54,50:caption 54,"Clear":on_click 54,wis sub_menu 55:parent 55,50:caption 55,"Help":on_click 55,abt open_dialog 60 save_dialog 61 form 1:color 1,255,255,255:border_small 1 left 1,240:height 1,600:width 1,500 combo 2 top 2,5:left 2,5:width 2,120:height 2,25 for x = 1 to 5 read a$ item_add 2, a$ next x alpha 3 left 3,3:top 3,33:width 3,10:caption 3,"X1" edit 4 left 4,20:top 4,30:width 4,30 alpha 5 left 5,55:top 5,33:width 5,10:caption 5,"Y1" edit 6 left 6,75:top 6,30:width 6,30 alpha 7 left 7,125:top 7,33:width 7,10:caption 7,"X2" edit 8 left 8,145:top 8,30:width 8,30 alpha 9 left 9,180:top 9,33:width 9,10:caption 9,"Y2" edit 10 left 10,200:top 10,30:width 10,30 alpha 11 left 11,140:top 11,8:width 11,30:caption 11,"Radius: " edit 12 left 12,180:top 12,5:width 12,50 container 13 left 13,3:top 13,60:width 13,225:height 13,95 alpha 14:parent 14,13:font_bold 14 left 14,10:top 14,1:width 14,10:caption 14," Pen color " alpha 15:parent 15,13 left 15,5:top 15,20:width 15,20:caption 15,"Red" scroll_bar 16:parent 16,13:min 16,0:max 16,255:position 16,0:on_change 16,pen left 16,40:top 16,20:width 16,145 edit 17:parent 17,13:text 17,"0": on_change 17,tpen left 17,190:top 17,18:width 17,30 alpha 18:parent 18,13 left 18,5:top 18,45:width 18,20:caption 18,"Green" scroll_bar 19:parent 19,13:min 19,0:max 19,255:position 19,0:on_change 19,pen left 19,40:top 19,45:width 19,145 edit 20:parent 20,13:text 20,"0":on_change 20,tpen left 20,190:top 20,43:width 20,30 alpha 21:parent 21,13 left 21,5:top 21,70:width 21,20:caption 21,"Blue" scroll_bar 22:parent 22,13:min 22,0:max 22,255:position 22,0:on_change 22,pen left 22,40:top 22,70:width 22,145 edit 23:parent 23,13:text 23,"0":on_change 23,tpen left 23,190:top 23,68:width 23,30 alpha 24 left 24,3:top 24,163:width 24,50:caption 24,"PenWidth:" edit 25:text 25,"1":on_change 25,pw left 25,55:top 25,160:width 25,30 alpha 26 left 26,87:top 26,163:width 26,25:caption 26,"Style:" combo 27:on_change 27,pnst left 27,115:top 27,160:width 27,115 for x = 1 to 5 read a$ item_add 27, a$ next x container 28 left 28,3:top 28,185:width 28,225:height 28,95 alpha 29:parent 29,28:font_bold 29 left 29,10:top 29,1:width 29,10:caption 29," Fill color " alpha 30:parent 30,28 left 30,5:top 30,20:width 30,20:caption 30,"Red" scroll_bar 31:parent 31,28:min 31,0:max 31,255:position 31,255:on_change 31,fill left 31,40:top 31,20:width 31,145 edit 32:parent 32,28:text 32,"255":on_change 32,tfill left 32,190:top 32,18:width 32,30 alpha 33:parent 33,28 left 33,5:top 33,45:width 33,20:caption 33,"Green" scroll_bar 34:parent 34,28:min 34,0:max 34,255:position 34,255:on_change 34,fill left 34,40:top 34,45:width 34,145 edit 35:parent 35,28:text 35,"255":on_change 35,tfill left 35,190:top 35,43:width 35,30 alpha 36:parent 36,28 left 36,5:top 36,70:width 36,20:caption 36,"Blue" scroll_bar 37:parent 37,28:min 37,0:max 37,255:position 37,255:on_change 37,fill left 37,40:top 37,70:width 37,145 edit 38:parent 38,28:text 38,"255":on_change 38,tfill left 38,190:top 38,65:width 38,30 button 39:caption 39,"Draw!":on_click 39,tst left 39,3:top 39,312:width 39,225 memo 41 left 41,3:top 41,340:width 41,225:height 41,200 timer 42:timer_interval 42,10:on_timer 42,pos:timer_off 42 alpha 43 left 43,3:top 43,290:width 43,50:caption 43,"Fill style:" combo 44:on_change 44,flst left 44,65:top 44,287:width 44,165 picture 45:parent 45,1 for x = 1 to 7 read a$ item_add 44, a$ next x REM Outil couleur par DIM wco%, hco%, wct%, hct%, ech%, ecv%, ra%, ga%, ba%, i%, j%, x%, y% DIM colStr$,bTimer wco% = 24: hco% = 12: ech% = 0: ecv% = 0 wct% = 6*(wco%+ech%)+10: hct% = 36*(hco%+ecv%)+10 FORM 300: BORDER_SMALL 300 WIDTH 300, wct%+16: HEIGHT 300, hct%+34 LEFT 300, width(1)+left(1):TOP 300, top(1) PICTURE 301: PARENT 301, 300: WIDTH 301, wct%: HEIGHT 301,hct% 2D_TARGET_IS 301 ra% = 0: ga% = 0: ba% = 0 FOR j% = 0 TO 35 y% = j%*(hco%+ecv%) FOR i% = 0 TO 5 x% = i%*(wco%+ech%) 2D_FILL_COLOR ra%,ga%,ba% 2D_RECTANGLE x%+5,y%+5,x%+wco%+4,y%+hco%+4 ba% = ba% + HEX("33") IF ba% > 255 ba% = 0: ga% = ga% + HEX("33") IF ga% > 255 ga% = 0: ra% = ra% + HEX("33") END_IF END_IF NEXT i% NEXT j% FORM 400:HIDE 400 timer_on 42 2d_target_is 45 END
pen: text 17, str$(position (16)) text 20, str$(position (19)) text 23, str$(position (22)) font_color 14,position (16), position (19), position (22) return
tpen: position 16, val(text$(17)) position 19, val(text$(20)) position 22, val(text$(23)) font_color 14,position (16), position (19), position (22) return
fill: text 32, str$(position (31)) text 35, str$(position (34)) text 38, str$(position (37)) color 29,position (31), position (34), position (37) return
tfill: position 31, val(text$(32)) position 34, val(text$(35)) position 37, val(text$(38)) color 29,position (31), position (34), position (37) return
wis: 2d_clear clear 41 return
grd: 2d_target_is 45 2d_pen_color 240,240,240 for x=0 to height(1) step 10 2d_line 0,x,width(1),x next x for x=0 to width(1) step 10 2d_line x,0,x,height(1) next x return
pos: show 1 LEFT 0, left(1)-width(0) show 300:LEFT 300, width(1)+left(1):TOP 300, top(1) TOP 0, top(1) full_space 45 caption 1, "CANVAS SIZE: "+str$(width(1))+"x"+str$(height(1))+" - Mouse-position: x: "+str$(mouse_x_position(45))+" y: "+str$(mouse_y_position(45)) x% = MOUSE_X_POSITION(301): y% = MOUSE_Y_POSITION(301) ra% = COLOR_PIXEL_RED(301,x%,y%) ga% = COLOR_PIXEL_GREEN(301,x%,y%) ba% = COLOR_PIXEL_BLUE(301,x%,y%) caption 300, "#"+ right$("0"+hex$(ra%),2)+right$("0"+hex$(ga%),2)+right$("0"+hex$(ba%),2) if MOUSE_LEFT_DOWN(301)=1 then font_color 14, ra%, ga%, ba%: text 17, str$(ra%):text 20, str$(ga%):text 23, str$(ba%) if MOUSE_RIGHT_DOWN(301)=1 then color 29, ra%, ga%, ba%: text 32, str$(ra%):text 35, str$(ga%):text 38, str$(ba%) if mouse_right_up(45)=1 text 8, str$(mouse_x_right_down(45)) text 10, str$(mouse_y_right_down(45)) end_if if mouse_left_up (45)=1 text 4, str$(mouse_x_left_down(45)) text 6, str$(mouse_y_left_down(45)) end_if return
pw: if val(text$(25))>20 then text 25, 20 return
tst: 2d_target_is 45 if text$(25)<>"" then 2d_pen_width val(text$(25)) 2d_pen_color val(text$(17)),val(text$(20)),val(text$(23)) 2d_fill_color val(text$(32)),val(text$(35)),val(text$(38)) if pn$<>text$(25) then pn$=text$(25):item_add 41, "2d_pen_width "+pn$ if pns<>item_index(27) then item_add 41, item_index$(27):pns=item_index(27) if fls<>item_index(44) then item_add 41, item_index$(44):fls=item_index(44) if kl$<>text$(17)+","+text$(20)+","+text$(23) then kl$=text$(17)+","+text$(20)+","+text$(23):item_add 41, "2d_pen_color "+kl$ if fl$<>text$(32)+","+text$(35)+","+text$(38) then fl$=text$(32)+","+text$(35)+","+text$(38):item_add 41, "2d_fill_color "+fl$ x=item_index(2) select x case 1 2d_circle val(text$(4)),val(text$(6)),val(text$(12)) item_add 41, "2d_circle "+text$(4)+","+text$(6)+","+text$(12) case 2 2d_flood val(text$(4)),val(text$(6)),val(text$(32)),val(text$(35)),val(text$(38)) item_add 41, "2d_flood "+text$(4)+","+text$(6)+","+text$(32)+","+text$(35)+","+text$(38) case 3 2d_line val(text$(4)),val(text$(6)),val(text$(8)),val(text$(10)) item_add 41, "2d_line "+text$(4)+","+text$(6)+","+text$(8)+","+text$(10) case 4 2d_point val(text$(4)),val(text$(6)) item_add 41, "2d_point "+text$(4)+","+text$(6) case 5 2d_rectangle val(text$(4)),val(text$(6)),val(text$(8)),val(text$(10)) item_add 41, "2d_rectangle "+text$(4)+","+text$(6)+","+text$(8)+","+text$(10) end_select return
pnst: x=item_index(27) select x case 1 2d_pen_dash case 2 2d_pen_dash_dot case 3 2d_pen_dash_dot_dot case 4 2d_pen_dot case 5 2d_pen_solid end_select return
abt: show 400 print_target_is 400 print "" print " PANORAMIC DRAW (by Lode Van de Velde)" print "" print " - Left-click on canvas selects X1/Y1-coordinates. " print " - Right-click on canvas selects X2/Y2-coordinates." print " - Mind that 'flood' does not work well with the grid turned on!" print " - Mind that 'flood' takes 'fill color', not 'pen color'!!" print "" print " COLOR PICKER (by JL35, Nardo and Lode Van de Velde)" print "" print " - Left-click color palet selects pen color. " print " - Right-click on color palet selects fill color." return
ld: timer_off 42 gosub wis fs$ = File_Name$(60) file_load 41,fs$ for x=1 to count(41) a$=ltrim$(rtrim$(item_read$(41,x)))+",0,0,0,0,0,0,0,0" if instr(a$," ")<>0 then i$(1)=left$(a$,instr(a$," ")-1):a$=right$(a$,len(a$)-instr(a$," ")) if instr(a$,",")<>0 then i$(2)=left$(a$,instr(a$,",")-1):a$=right$(a$,len(a$)-instr(a$,",")) if instr(a$,",")<>0 then i$(3)=left$(a$,instr(a$,",")-1):a$=right$(a$,len(a$)-instr(a$,",")) if instr(a$,",")<>0 then i$(4)=left$(a$,instr(a$,",")-1):a$=right$(a$,len(a$)-instr(a$,",")) if instr(a$,",")<>0 then i$(5)=left$(a$,instr(a$,",")-1):a$=right$(a$,len(a$)-instr(a$,",")) if instr(a$,",")<>0 then i$(6)=left$(a$,instr(a$,",")-1) if item_read$(41,x)="2d_pen_dash" then 2d_pen_dash if item_read$(41,x)="2d_pen_dash_dot" then 2d_pen_dash_dot if item_read$(41,x)="2d_pen_dash_dot_dot" then 2d_pen_dash_dot_dot if item_read$(41,x)="2d_pen_dot" then 2d_pen_dot if item_read$(41,x)="2d_pen_solid" then 2d_pen_solid if item_read$(41,x)="2d_fill_cross" then 2d_fill_cross if item_read$(41,x)="2d_fill_diagonal_cross" then 2d_fill_diagonal_cross if item_read$(41,x)="2d_fill_diagonal_down" then 2d_fill_diagonal_down if item_read$(41,x)="2d_fill_diagonal_up" then 2d_fill_diagonal_up if item_read$(41,x)="2d_fill_horizontal" then 2d_fill_horizontal if item_read$(41,x)="2d_fill_solid" then 2d_fill_solid if item_read$(41,x)="2d_fill_vertical" then 2d_fill_vertical if i$(1)="2d_pen_width" then 2d_pen_width val(i$(2)) if i$(1)="2d_pen_color" then 2d_pen_color val(i$(2)),val(i$(3)),val(i$(4)) if i$(1)="2d_fill_color" then 2d_fill_color val(i$(2)),val(i$(3)),val(i$(4)) if i$(1)="2d_circle" then 2d_circle val(i$(2)),val(i$(3)),val(i$(4)) if i$(1)="2d_point" then 2d_point val(i$(2)),val(i$(3)) if i$(1)="2d_rectangle" then 2d_rectangle val(i$(2)),val(i$(3)),val(i$(4)),val(i$(5)) if i$(1)="2d_line" then 2d_line val(i$(2)),val(i$(3)),val(i$(4)),val(i$(5)) if i$(1)="2d_flood" then 2d_flood val(i$(2)),val(i$(3)),val(i$(4)),val(i$(5)),val(i$(6)) for y=1 to 6 i$(y)="" next y next x timer_on 42 return
sv: fs$ = File_Name$(61) file_save 41, fs$ return
flst: x=item_index(44) select x case 1 2d_fill_cross case 2 2d_fill_diagonal_cross case 3 2d_fill_diagonal_down case 4 2d_fill_diagonal_up case 5 2d_fill_horizontal case 6 2d_fill_solid case 7 2d_fill_vertical end_select return
err: return
Dernière édition par lodchjo le Jeu 16 Fév 2012 - 8:50, édité 1 fois | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Panoramic-Draw Mer 15 Fév 2012 - 23:23 | |
| Les fonctions fonctionnent bien, ton programme a encore fait un pas en avant | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Panoramic-Draw Mer 15 Fév 2012 - 23:44 | |
| des fonctions qui fonctionnent, c'est la moindre des choses... | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Panoramic-Draw Mer 15 Fév 2012 - 23:51 | |
| Vraiment, ça m'épate! En si peu de ligne un petit logiciel bien pratique. T'es un champion! | |
| | | lodchjo
Nombre de messages : 162 Age : 53 Localisation : Anvers Date d'inscription : 26/12/2011
| Sujet: Re: Panoramic-Draw Jeu 16 Fév 2012 - 8:52 | |
| Merci beaucoup! Le prochain pas, c'est le dessin des poligones et le "undo". J'ai un peu peur du "undo", mais je vais pouvoir m'inspirer sur le programme de JL35 (Composition graphique d'une page A4). Si on arrive a fusionner les deux, ça sera parfait! | |
| | | Contenu sponsorisé
| Sujet: Re: Panoramic-Draw | |
| |
| | | | Panoramic-Draw | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |