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
» Gestion d'un système client-serveur.
Panoramic-Draw Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
Panoramic-Draw Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Panoramic-Draw Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Panoramic-Draw Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Panoramic-Draw Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Panoramic-Draw Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Panoramic-Draw Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Panoramic-Draw Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Panoramic-Draw Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Panoramic-Draw Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Panoramic-Draw Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Panoramic-Draw Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
Panoramic-Draw Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Panoramic-Draw Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
Panoramic-Draw Emptypar Jack Mar 30 Avr 2024 - 20:40

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 : -28%
Précommande : Smartphone Google Pixel 8a 5G ...
Voir le deal
389 €

 

 Panoramic-Draw

Aller en bas 
+3
exdragon
Klaus
lodchjo
7 participants
Aller à la page : 1, 2  Suivant
AuteurMessage
lodchjo

lodchjo


Nombre de messages : 162
Age : 53
Localisation : Anvers
Date d'inscription : 26/12/2011

Panoramic-Draw Empty
MessageSujet: Panoramic-Draw   Panoramic-Draw EmptyDim 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"
Revenir en haut Aller en bas
http://lode.weebly.com
Klaus

Klaus


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

Panoramic-Draw Empty
MessageSujet: Re: Panoramic-Draw   Panoramic-Draw EmptyDim 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 !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
exdragon

exdragon


Nombre de messages : 601
Date d'inscription : 05/01/2012

Panoramic-Draw Empty
MessageSujet: Re: Panoramic-Draw   Panoramic-Draw EmptyDim 29 Jan 2012 - 23:25

Merci Lodcho t'est un crack !
Revenir en haut Aller en bas
lodchjo

lodchjo


Nombre de messages : 162
Age : 53
Localisation : Anvers
Date d'inscription : 26/12/2011

Panoramic-Draw Empty
MessageSujet: Re: Panoramic-Draw   Panoramic-Draw EmptyMer 1 Fév 2012 - 9:59

La version 3d est en route! Wink
(Mais je ne la publierai qu'après le concours du mois de février sera fini.)
Revenir en haut Aller en bas
http://lode.weebly.com
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Panoramic-Draw Empty
MessageSujet: Re: Panoramic-Draw   Panoramic-Draw EmptySam 4 Fév 2012 - 20:39

Bravo Smile
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Panoramic-Draw Empty
MessageSujet: Re: Panoramic-Draw   Panoramic-Draw EmptySam 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))
Revenir en haut Aller en bas
lodchjo

lodchjo


Nombre de messages : 162
Age : 53
Localisation : Anvers
Date d'inscription : 26/12/2011

Panoramic-Draw Empty
MessageSujet: Re: Panoramic-Draw   Panoramic-Draw EmptyDim 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...?
Revenir en haut Aller en bas
http://lode.weebly.com
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Panoramic-Draw Empty
MessageSujet: Re: Panoramic-Draw   Panoramic-Draw EmptyDim 12 Fév 2012 - 11:17

Revenir en haut Aller en bas
lodchjo

lodchjo


Nombre de messages : 162
Age : 53
Localisation : Anvers
Date d'inscription : 26/12/2011

Panoramic-Draw Empty
MessageSujet: Re: Panoramic-Draw   Panoramic-Draw EmptyDim 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 Smile. (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.
Revenir en haut Aller en bas
http://lode.weebly.com
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Panoramic-Draw Empty
MessageSujet: Re: Panoramic-Draw   Panoramic-Draw EmptyDim 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 Cool
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 Smile et ça permet de le programmer sans s'amuser à les sinus et les cos ...
Revenir en haut Aller en bas
JL35




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

Panoramic-Draw Empty
MessageSujet: Re: Panoramic-Draw   Panoramic-Draw EmptyDim 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.
Revenir en haut Aller en bas
exdragon

exdragon


Nombre de messages : 601
Date d'inscription : 05/01/2012

Panoramic-Draw Empty
MessageSujet: Re: Panoramic-Draw   Panoramic-Draw EmptyDim 12 Fév 2012 - 17:06

ouais, je suis d'accord avec JL35, mieux les carrés !
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Panoramic-Draw Empty
MessageSujet: Re: Panoramic-Draw   Panoramic-Draw EmptyDim 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... Wink
Revenir en haut Aller en bas
http://nardo26.lescigales.org
exdragon

exdragon


Nombre de messages : 601
Date d'inscription : 05/01/2012

Panoramic-Draw Empty
MessageSujet: Re: Panoramic-Draw   Panoramic-Draw EmptyDim 12 Fév 2012 - 17:46

Montre ça Wink
ça m'interesse le passage de paramettre en procédures Wink

Pour le moment je me débrouillais avec les variables publiques, mais c'est pas top :/


Revenir en haut Aller en bas
lodchjo

lodchjo


Nombre de messages : 162
Age : 53
Localisation : Anvers
Date d'inscription : 26/12/2011

Panoramic-Draw Empty
MessageSujet: Re: Panoramic-Draw   Panoramic-Draw EmptyDim 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
Revenir en haut Aller en bas
http://lode.weebly.com
exdragon

exdragon


Nombre de messages : 601
Date d'inscription : 05/01/2012

Panoramic-Draw Empty
MessageSujet: Re: Panoramic-Draw   Panoramic-Draw EmptyDim 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 Wink
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Panoramic-Draw Empty
MessageSujet: Re: Panoramic-Draw   Panoramic-Draw EmptyLun 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
Revenir en haut Aller en bas
lodchjo

lodchjo


Nombre de messages : 162
Age : 53
Localisation : Anvers
Date d'inscription : 26/12/2011

Panoramic-Draw Empty
MessageSujet: Re: Panoramic-Draw   Panoramic-Draw EmptyLun 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
Revenir en haut Aller en bas
http://lode.weebly.com
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Panoramic-Draw Empty
MessageSujet: Re: Panoramic-Draw   Panoramic-Draw EmptyLun 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 ... Smile 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 Smile ) 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...
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Panoramic-Draw Empty
MessageSujet: Re: Panoramic-Draw   Panoramic-Draw EmptyMer 15 Fév 2012 - 17:16

Bon comme promis, j'ai reécris la librairie couleur 100% en Panoramic
Vous trouverez les sources sur:

MyDrive
username : 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... Smile

Note :
La fonction ColOpenForm n'est pas tout à fait stable (ça plante parfois et je n'ai pas encore trouvé d'explication scratch )
Revenir en haut Aller en bas
http://nardo26.lescigales.org
lodchjo

lodchjo


Nombre de messages : 162
Age : 53
Localisation : Anvers
Date d'inscription : 26/12/2011

Panoramic-Draw Empty
MessageSujet: Panoramic-Draw - VERSION 2!!   Panoramic-Draw EmptyMer 15 Fév 2012 - 23:01

Bonjour, messieurs-dames Very Happy

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. cheers

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
Revenir en haut Aller en bas
http://lode.weebly.com
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Panoramic-Draw Empty
MessageSujet: Re: Panoramic-Draw   Panoramic-Draw EmptyMer 15 Fév 2012 - 23:23

Les fonctions fonctionnent bien, ton programme a encore fait un pas en avant Smile
Revenir en haut Aller en bas
JL35




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

Panoramic-Draw Empty
MessageSujet: Re: Panoramic-Draw   Panoramic-Draw EmptyMer 15 Fév 2012 - 23:44

des fonctions qui fonctionnent, c'est la moindre des choses... Very Happy
Revenir en haut Aller en bas
bignono

bignono


Nombre de messages : 1127
Age : 66
Localisation : Val de Marne
Date d'inscription : 13/11/2011

Panoramic-Draw Empty
MessageSujet: Re: Panoramic-Draw   Panoramic-Draw EmptyMer 15 Fév 2012 - 23:51

Vraiment, ça m'épate! En si peu de ligne un petit logiciel bien pratique. T'es un champion! Wink
Revenir en haut Aller en bas
lodchjo

lodchjo


Nombre de messages : 162
Age : 53
Localisation : Anvers
Date d'inscription : 26/12/2011

Panoramic-Draw Empty
MessageSujet: Re: Panoramic-Draw   Panoramic-Draw EmptyJeu 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). Wink
Si on arrive a fusionner les deux, ça sera parfait! Wink
Revenir en haut Aller en bas
http://lode.weebly.com
Contenu sponsorisé





Panoramic-Draw Empty
MessageSujet: Re: Panoramic-Draw   Panoramic-Draw Empty

Revenir en haut Aller en bas
 
Panoramic-Draw
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» Logithèque : une base de données en Panoramic pour Panoramic
» IDE Panoramic écrit en Panoramic
» PANORAMIC V 0.9.6 available / PANORAMIC V 0.9.6 disponible
» Logo Panoramic en Panoramic
» panoramic 0.9.28

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: