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
» Bataille terrestre
Souci avec 2d_image_paste Emptypar jjn4 Aujourd'hui à 14:21

» item_index
Souci avec 2d_image_paste Emptypar leclode Aujourd'hui à 14:07

» SineCube
Souci avec 2d_image_paste Emptypar Marc Hier à 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Souci avec 2d_image_paste Emptypar Marc Hier à 12:22

» Philharmusique
Souci avec 2d_image_paste Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Souci avec 2d_image_paste Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Souci avec 2d_image_paste Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Souci avec 2d_image_paste Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Souci avec 2d_image_paste Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Souci avec 2d_image_paste Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Souci avec 2d_image_paste Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0
Souci avec 2d_image_paste Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Souci avec 2d_image_paste Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
Souci avec 2d_image_paste Emptypar Klaus Lun 6 Mai 2024 - 10:23

» @Jack
Souci avec 2d_image_paste 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 :
Cdiscount : -30€ dès 300€ ...
Voir le deal

 

 Souci avec 2d_image_paste

Aller en bas 
+3
Jicehel
Klaus
Yannick
7 participants
AuteurMessage
Yannick




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

Souci avec 2d_image_paste Empty
MessageSujet: Souci avec 2d_image_paste   Souci avec 2d_image_paste EmptySam 2 Mai 2015 - 4:45

Ce que mon programme est sensé faire :

Création d' un cadran dans un "picture"
copie de ce cadran avec "2d_image_copy"
réglage et visualisation d' un angle par les touches + et - du pavé numérique
le cadran est censé être réinitialisé par 2d_image_paste
de façon à ne voir que 2 segments mais .... :
Code:
dim sc%,Angl,pict$
pict$=dir_current$+"\pict.bmp"
label clic

height 0,600+38
width 0,600+16

Picture 1
full_space 1
color 1,0,200,0
display
On_Key_down 0,Clic

image 2

Cadran(1,150,200)

set_focus 0

end

Clic:
  sc%=scancode
  if sc%=107 : Angl=Angl+0.01 :Move() : end_if
  if sc%=109 : Angl=Angl-0.01 :Move() : end_if
  if sc%=27 : terminate :end_if
return

SUB Cadran(Obj%,Ray%,Ray2%)
  dim_local i%,A,Ang
  dim Cx,Cy,Ax(360),Ay(360),Bx(360),By(360),nbs%
  nbs%=120
'  reperage du centre de l' objet 2D
  Cx=width(Obj%)/2
  Cy=height(Obj%)/2
  A=(2*acos(-1))/nbs%
'  marques interieures
  for i%=1 to nbs%
      Ang=A*i%
      Ax(i%)=Cx+(Ray%*cos(Ang))
      Ay(i%)=Cy+(Ray%*sin(Ang))
      display
  next i%
'  marques exterieures
  for i%=1 to nbs%
      Ang=A*i%
      Bx(i%)=Cx+(Ray2%*cos(Ang))
      By(i%)=Cy+(Ray2%*sin(Ang))
  next i%
'  tracage du cadran
  2D_Target_is 1
  2D_pen_color 200,200,200
  2D_pen_width 2
  for i%=1 to nbs%
      2D_line Ax(i%),Ay(i%),Bx(i%),By(i%)
  next i%
'  memorisation du cadran
  2d_image_copy 2,0,0,200,200
END_SUB

SUB Move()
  dim_local Cx,Cy,Mx,My,Nx,Ny,Ray
  Ray=150
  Cx=width(1)/2
  Cy=height(1)/2
  Mx=Cx+Ray
  My=Cy
  Nx=Cx+(Ray*cos(Angl*-1))
  Ny=Cy+(Ray*sin(Angl*-1))
  2d_target_is 1
  2d_image_paste 2,0,0
  2d_pen_color 255,0,0
  2d_pen_width 1
  2d_line Cx,Cy,Mx,My
  2D_LINE Cx,Cy,Nx,Ny
  set_focus 0
END_SUB
Revenir en haut Aller en bas
Klaus

Klaus


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

Souci avec 2d_image_paste Empty
MessageSujet: Re: Souci avec 2d_image_paste   Souci avec 2d_image_paste EmptySam 2 Mai 2015 - 9:09

C'est parce qu'à cause du "full_space 1", les dimensions du picture ne sont pas 200,200. Essaie comme ça:
Code:
'  memorisation du cadran
  2d_image_copy 2,0,0,width(1),height(1) : ' 200,200
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


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

Souci avec 2d_image_paste Empty
MessageSujet: Re: Souci avec 2d_image_paste   Souci avec 2d_image_paste EmptySam 2 Mai 2015 - 9:45

le code avec la modif de Klaus:
Code:
dim sc%,Angl,pict$
pict$=dir_current$+"\pict.bmp"
label clic

height 0,600+38 : width 0,600+16
picture 1 : full_space 1 : color 1,0,200,0

on_key_down 0,Clic

image 2

Cadran(1,150,200)

set_focus 0 : display

end

Clic:
  sc%=scancode
  if sc%=107 then Angl=Angl+0.01 : Move()
  if sc%=109 then Angl=Angl-0.01 : Move()
  if sc%=27 : terminate :end_if
return

SUB Cadran(Obj%,Ray%,Ray2%)
  dim_local i%,A,Ang
  dim_local Cx,Cy,Ax(360),Ay(360),Bx(360),By(360),nbs%
  nbs%=120
'  reperage du centre de l' objet 2D
  Cx=width(Obj%)/2 :  Cy=height(Obj%)/2  :  A=(2*acos(-1))/nbs%
'  marques interieures
  for i%=1 to nbs% : Ang=A*i% : Ax(i%)=Cx+(Ray%*cos(Ang))  : Ay(i%)=Cy+(Ray%*sin(Ang))  : next i%
'  marques exterieures
  for i%=1 to nbs% : Ang=A*i% : Bx(i%)=Cx+(Ray2%*cos(Ang)) : By(i%)=Cy+(Ray2%*sin(Ang)) :next i%
'  tracage du cadran
  2D_Target_is 1
  2D_pen_color 200,200,200 :  2D_pen_width 2
  for i%=1 to nbs% : 2D_line Ax(i%),Ay(i%),Bx(i%),By(i%) : next i%
'  memorisation du cadran
  2d_image_copy 2,0,0,width(1),height(1)
  display
END_SUB

SUB Move()
  dim_local Cx,Cy,Mx,My,Nx,Ny,Ray
  Ray=150 : Cx=width(1)/2 : Cy=height(1)/2
  Mx=Cx+Ray : My=Cy : Nx=Cx+(Ray*cos(Angl*-1)) :  Ny=Cy+(Ray*sin(Angl*-1))
  2d_target_is 1
  2d_image_paste 2,0,0
  2d_pen_color 255,0,0 : 2d_pen_width 1 : 2d_line Cx,Cy,Mx,My :  2d_line Cx,Cy,Nx,Ny
  set_focus 0
END_SUB

Par contre tu as d'autres moyens (ça diminue le clignotement) comme par exemple:

Code:
dim sc%,Angl,pict$
pict$=dir_current$+"\pict.bmp"
label clic

height 0,600+38 : width 0,600+16
picture 1 : full_space 1 : color 1,0,200,0

on_key_down 0,Clic

Cadran(1,150,200)

set_focus 0 : display

end

Clic:
  sc%=scancode
  if sc%=107 then Move(0) : Angl=Angl+0.01 : Move(1)
  if sc%=109 then Move(0) : Angl=Angl-0.01 : Move(1)
  if sc%=27 : terminate :end_if
return

SUB Cadran(Obj%,Ray%,Ray2%)
  dim_local i%,A,Ang
  dim_local Cx,Cy,Ax(360),Ay(360),Bx(360),By(360),nbs%
  nbs%=120
'  reperage du centre de l' objet 2D
  Cx=width(Obj%)/2 :  Cy=height(Obj%)/2  :  A=(2*acos(-1))/nbs%
'  marques interieures
  for i%=1 to nbs% : Ang=A*i% : Ax(i%)=Cx+(Ray%*cos(Ang))  : Ay(i%)=Cy+(Ray%*sin(Ang))  : next i%
'  marques exterieures
  for i%=1 to nbs% : Ang=A*i% : Bx(i%)=Cx+(Ray2%*cos(Ang)) : By(i%)=Cy+(Ray2%*sin(Ang)) :next i%
'  tracage du cadran
  2d_Target_is 1 : 2d_pen_color 200,200,200 :  2d_pen_width 2
  for i%=1 to nbs% : 2d_line Ax(i%),Ay(i%),Bx(i%),By(i%) : next i%
'  memorisation du cadran
  display
END_SUB

SUB Move(Type_trace%)
  dim_local Cx,Cy,Mx,My,Nx,Ny,Ray
  Ray=150 : Cx=width(1)/2 : Cy=height(1)/2
  Mx=Cx+Ray : My=Cy : Nx=Cx+(Ray*cos(Angl*-1)) :  Ny=Cy+(Ray*sin(Angl*-1))
  if Type_trace% = 1 then 2d_pen_color 255,0,0 : else : 2d_pen_color 0,200, 0
  2d_pen_width 1 : 2d_Target_is 1 : 2d_line Cx,Cy,Mx,My :  2d_line Cx,Cy,Nx,Ny
  set_focus 0
END_SUB
Revenir en haut Aller en bas
Yannick




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

Souci avec 2d_image_paste Empty
MessageSujet: re   Souci avec 2d_image_paste EmptySam 2 Mai 2015 - 13:50

Merci à tous les deux, je vais regarder cela de près...très près...

Au départ, j' avais mis 360 marques mais les lignes sont trop tordues
et ce n' est pas esthétique.

L' idéal, serait de dessiner comme une portion de camembert mais je n' ai pas
encore trouver comment... Wink
Revenir en haut Aller en bas
Jicehel

Jicehel


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

Souci avec 2d_image_paste Empty
MessageSujet: Re: Souci avec 2d_image_paste   Souci avec 2d_image_paste EmptySam 2 Mai 2015 - 15:36

Tu peux essayer avec la fonction arcor pour faire l'arc de ton camenbert comme tu as déjà les 2 bors. Après tu fais un flood si tu veux, non ?
Revenir en haut Aller en bas
papydall

papydall


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

Souci avec 2d_image_paste Empty
MessageSujet: Re: Souci avec 2d_image_paste   Souci avec 2d_image_paste EmptySam 2 Mai 2015 - 17:57

ygeronimi a écrit:
L' idéal, serait de dessiner comme une portion de camembert mais je n' ai pas
encore trouver comment...  

Tu as ici ce que tu demandes, non ?
En voici un extrait

Code:

rem ============================================================================
 Secteur_Circulaire(300,220,0,90,200)
' Secteur_Circulaire(300,220,60,120,180)
' Secteur_Circulaire(300,220,-30,-60,200)
' Secteur_Circulaire(300,220,-60,-30,200)
end
rem ============================================================================

' Secteur_Circulaire(xc,yc,deb,fin,rayon)
' Tracé d'un secteur circulaire
' Paramètres:
' xc,yc : coordonnées du centre du secteur
' deb,fin : respectivement angle de debut et angle de fin du tracé en DEGRES
' rayon : rayon du secteur
' REMARQUES :
' * Le sens du tracé est le sens trigonométrique (sens anti-horraire)
' * les angles deb et fin peuvent être positifs, négatifs ou nuls.
' * Ils peuvent être > 360° en valeur absolue.
' Exemple d'appel :
' Secteur_Circulaire(300,220,0,90,200)
' Secteur_Circulaire(300,220,60,120,150)
' Secteur_Circulaire(300,220,-30,-60,200)
' Secteur_Circulaire(300,220,-60,-30,200)

SUB Secteur_Circulaire(xc,yc,deb,fin,rayon)
    dim_local x,y,a,pi,rad,p
    pi = acos(-1) : rad = pi/180 : deb = mod(deb,360) : fin = mod(fin,360)
    if deb < 0 then deb = deb + 360
    if fin < 0 then fin = fin + 360
    if deb > fin then  deb = deb - 360
    2d_poly_from xc,yc
       for a = deb to fin
           x = rayon*cos(a*rad) : y = rayon*sin(a*rad) : 2d_poly_to xc+x,yc-y
       next a
    2d_poly_to xc,yc
END_SUB
rem ============================================================================


@jicehel

Tu peux mettre ce code avant l'appel

Code:

dim a
 for a = 0 to 360
    Secteur_Circulaire(300,220,0,a,200)
 next a

Tu auras une certaine forme que tu coloreras as you like
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jicehel

Jicehel


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

Souci avec 2d_image_paste Empty
MessageSujet: Re: Souci avec 2d_image_paste   Souci avec 2d_image_paste EmptySam 2 Mai 2015 - 18:50

OK, ça marchait bien, mais je ne sais pas pourquoi sur mon poste, ça ne marche plus.
Sans doute une bétise.
Le code:
Code:
dim sc%,Angl,pict$
pict$=dir_current$+"\pict.bmp"
label clic

height 0,600+38 : width 0,600+16
picture 1 : full_space 1 : color 1,0,200,0

on_key_down 0,Clic

Cadran(1,150,200)

set_focus 0 : display

end

Clic:
  sc%=scancode
  if sc%=107 then Move(0) : Angl=Angl+0.5 : Move(1)
  if Angl > 360 then Angl = Angl - 360
  if sc%=109 then Move(0) : Angl=Angl-0.5 : Move(1)
  if Angl < 0-360 then Angl = Angl + 360
  if sc%=27  then terminate
return

SUB Cadran(Obj%,Ray%,Ray2%)
  dim_local i%,A,Ang
  dim_local Cx,Cy,Ax(360),Ay(360),Bx(360),By(360),nbs%
  nbs%=120
'  reperage du centre de l' objet 2D
  Cx=width(Obj%)/2 :  Cy=height(Obj%)/2  :  A=(2*acos(-1))/nbs%
'  marques interieures
  for i%=1 to nbs% : Ang=A*i% : Ax(i%)=Cx+(Ray%*cos(Ang))  : Ay(i%)=Cy+(Ray%*sin(Ang))  : next i%
'  marques exterieures
  for i%=1 to nbs% : Ang=A*i% : Bx(i%)=Cx+(Ray2%*cos(Ang)) : By(i%)=Cy+(Ray2%*sin(Ang)) :next i%
'  tracage du cadran
  2d_Target_is 1 : 2d_pen_color 200,200,200 :  2d_pen_width 2
  for i%=1 to nbs% : 2d_line Ax(i%),Ay(i%),Bx(i%),By(i%) : next i%
'  memorisation du cadran
  display
END_SUB

SUB Move(Type_trace%)
  off_key_down  0
  dim_local Cx,Cy,Mx,My,Nx,Ny,Ray,R,V,B
  Ray=150 : Cx=width(1)/2 : Cy=height(1)/2
  if Type_trace% = 1 then R=255: V=0 : B=0 : else : R=0: V=200 : B=0
  2d_pen_color R,V,B
  2d_pen_width 1 : 2d_Target_is 1
  Secteur_Circulaire(Cx,Cy,0,Angl,Ray)
  if Angl > 0 then 2d_flood Cx + Ray - 5, Cy - 1, R,V,B
  display :  set_focus 0 :  pause 50 :  on_key_down 0,Clic
END_SUB

SUB Secteur_Circulaire(xc,yc,deb,fin,rayon)
    dim_local x,y,a,pi,rad,p
    pi = acos(-1) : rad = pi/180 : deb = mod(deb,360) : fin = mod(fin,360)
    if deb < 0 then deb = deb + 360
    if fin < 0 then fin = fin + 360
    if deb > fin then  deb = deb - 360
    2d_poly_from xc,yc
      for a = deb to fin
          x = rayon*cos(a*rad) : y = rayon*sin(a*rad) : 2d_poly_to xc+x,yc-y
      next a
    2d_poly_to xc,yc
END_SUB
Revenir en haut Aller en bas
Yannick




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

Souci avec 2d_image_paste Empty
MessageSujet: re   Souci avec 2d_image_paste EmptyDim 3 Mai 2015 - 1:53

Merci à tous les deux, j' attaque ma 45 ème année un peu moins bête
que je n' ai fini la 44 ème.
lol!

@ Jicehel,
Cela fonctionne chez moi, même si cela fait un peu stromboscope... Laughing
Revenir en haut Aller en bas
papydall

papydall


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

Souci avec 2d_image_paste Empty
MessageSujet: Re: Souci avec 2d_image_paste   Souci avec 2d_image_paste EmptyDim 3 Mai 2015 - 2:18

Souci avec 2d_image_paste A10  Bon anniversaire  Souci avec 2d_image_paste A10


Spoiler:
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Nardo26

Nardo26


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

Souci avec 2d_image_paste Empty
MessageSujet: Re: Souci avec 2d_image_paste   Souci avec 2d_image_paste EmptyDim 3 Mai 2015 - 3:33

Souci avec 2d_image_paste 60 ygeronimi ! Souci avec 2d_image_paste 76Souci avec 2d_image_paste 45
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Yannick




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

Souci avec 2d_image_paste Empty
MessageSujet: re   Souci avec 2d_image_paste EmptyDim 3 Mai 2015 - 3:36

Une petite modif du visuel pour limiter le clignotement  Laughing :
Code:
dim sc%,Angl,pict$
pict$=dir_current$+"\pict.bmp"
label clic

height 0,600+38 : width 0,600+16
picture 1
full_space 1
color 1,255,255,255
Caption 0,"Visio Angles [ Degrés - Radians - Grades ]"
on_key_down 0,Clic

Cadran(1,150,200)

set_focus 0 : display

end

Clic:
  sc%=scancode
  if sc%=107 then Move(0) : Angl=Angl+0.5 : Move(1)
  if Angl > 360 then Angl = Angl - 360
  if sc%=109 then Move(0) : Angl=Angl-0.5 : Move(1)
  if Angl < 0-360 then Angl = Angl + 360
  if sc%=27  then terminate
return

SUB Cadran(Obj%,Ray%,Ray2%)
  dim_local i%,A,Ang
  dim_local Cx,Cy,Ax(360),Ay(360),Bx(360),By(360),nbs%
  nbs%=360
'  reperage du centre de l' objet 2D
  Cx=width(Obj%)/2 :  Cy=height(Obj%)/2  :  A=(2*acos(-1))/nbs%
'  marques interieures
  for i%=1 to nbs% : Ang=A*i% : Ax(i%)=Cx+(Ray%*cos(Ang))  : Ay(i%)=Cy+(Ray%*sin(Ang))  : next i%
'  marques exterieures
  for i%=1 to nbs% : Ang=A*i% : Bx(i%)=Cx+(Ray2%*cos(Ang)) : By(i%)=Cy+(Ray2%*sin(Ang)) :next i%
'  tracage du cadran
  2d_Target_is 1 :2d_pen_width 1
  for i%=1 to nbs%
     if i%=45 or i%=90 or i%=135 or i%=180 or i%=225 or  i%=270 or i%=315 or i%=360
        2d_pen_color 100,100,100
        2d_line Ax(i%),Ay(i%),Bx(i%),By(i%)
     else
        2d_pen_color 0,200,0
        2d_point Bx(i%),By(i%)
     end_if
  next i%
'  memorisation du cadran
  display
END_SUB

SUB Move(Type_trace%)
  off_key_down  0
  dim_local Cx,Cy,Mx,My,Nx,Ny,Ray,R,V,B,pi,rad$,grd$,deg$
  pi=acos(-1)
  Ray=150 : Cx=width(1)/2 : Cy=height(1)/2
  if Type_trace% = 1 then R=255: V=0 : B=0 : else : R=255: V=255 : B=255
  2d_pen_color R,V,B
  2d_pen_width 1 : 2d_Target_is 1
  Secteur_Circulaire(Cx,Cy,0,Angl,Ray)
  if Angl > 0 then 2d_flood Cx + Ray - 5, Cy - 1, R,V,B
  deg$ =str$(Angl)
  rad$ =str$((Angl*pi)/180) : rad$=left$(rad$,5)
  grd$ =str$((Angl/360)*400): grd$=left$(grd$,7)
  Caption 0,"Visio Angles [ Degrés : "+deg$+"   Radians : "+rad$+"   Grades : "+grd$+" ]"
  display :  set_focus 0 :  pause 10 :  on_key_down 0,Clic
END_SUB

SUB Secteur_Circulaire(xc,yc,deb,fin,rayon)
    dim_local x,y,a,pi,rad,p
    pi = acos(-1) : rad = pi/180 : deb = mod(deb,360) : fin = mod(fin,360)
    if deb < 0 then deb = deb + 360
    if fin < 0 then fin = fin + 360
    if deb > fin then  deb = deb - 360
    2d_poly_from xc,yc
      for a = deb to fin
          x = rayon*cos(a*rad) : y = rayon*sin(a*rad) : 2d_poly_to xc+x,yc-y
      next a
    2d_poly_to xc,yc
END_SUB
Revenir en haut Aller en bas
Yannick




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

Souci avec 2d_image_paste Empty
MessageSujet: re   Souci avec 2d_image_paste EmptyDim 3 Mai 2015 - 3:37

Merci les gars !
drunken
Revenir en haut Aller en bas
Nardo26

Nardo26


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

Souci avec 2d_image_paste Empty
MessageSujet: Re: Souci avec 2d_image_paste   Souci avec 2d_image_paste EmptyDim 3 Mai 2015 - 3:45

En parlant de 2d_image_paste, j'aurai bien aimé pouvoir coller des petites images (32x32px) les une à cotés des autres, tout en conservant la notion de canal alpha sous Panoramic...
Cela m'aurait bien aidé actuellement. Souci avec 2d_image_paste 07
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Yannick




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

Souci avec 2d_image_paste Empty
MessageSujet: re   Souci avec 2d_image_paste EmptyDim 3 Mai 2015 - 4:44

La transparence est un manque pour Panoramic
Si "Picture" prenait en compte les *.png ou *.gif , cela serait un plus non négligeable
surtout dans les cadre des évolutions vers les tablettes et autres appareils Androïd
ou tout est sur l' image. Wink
Revenir en haut Aller en bas
papydall

papydall


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

Souci avec 2d_image_paste Empty
MessageSujet: Re: Souci avec 2d_image_paste   Souci avec 2d_image_paste EmptyDim 3 Mai 2015 - 6:36


Souci avec 2d_image_paste A10   Pour tes 44 ans, voici ma version plus concise et avec un léger ou même ZERO CLIGNOTEMENT !

Code:
rem ============================================================================
label clic
dim sc%,Angl, pi, rad, Cx,Cy :  pi = acos(-1) : rad = pi/180
height 0,600+38 : width 0,600+16 : Cx=width(0)/2 : Cy=height(0)/2
on_key_down 0,Clic
Caption 0,"Visio Angles [ Degrés - Radians - Grades ]"

picture 1 : full_space 1 : color 1,255,255,255 : Cx=width(1)/2 : Cy=height(1)/2
' Cadran(1,150,200)  : ' < ========================== Avec un léger clignotement
Cadran(0,150,200)    : ' < ========================== Avec   ZERO   clignotement

end
rem ============================================================================
Clic:
  sc%=scancode
  if sc%=107 then move(0) : Angl=Angl+1 : Move(1)   : ' Signe +
  if Angl > 360 then Angl = Angl - 360
  if sc%=109 then Move(0) : Angl=Angl-1 : Move(1)   : ' Signe -
  if Angl < 0-360 then Angl = Angl + 360
  if sc%=27  then terminate

return
rem ============================================================================
SUB Cadran(Obj%,Ray%,Ray2%)
  dim_local i%,Ang
  dim_local Ax(360),Ay(360),Bx(360),By(360),nbs%
  nbs%=360
'  reperage du centre de l' objet 2D
'  marques interieures
  for i%=1 to nbs% : Ang=rad*i% : Ax(i%)=Cx+(Ray%*cos(Ang))  : Ay(i%)=Cy+(Ray%*sin(Ang))  : next i%
'  marques exterieures
  for i%=1 to nbs% : Ang=rad*i% : Bx(i%)=Cx+(Ray2%*cos(Ang)) : By(i%)=Cy+(Ray2%*sin(Ang)) :next i%
  2d_target_is Obj%
  for i% = 45 to 360 step 45
      2d_pen_color 100,100,100
      2d_line Ax(i%),Ay(i%),Bx(i%),By(i%)
  next i%
  2d_pen_color 0,200,0
  for i%=1 to nbs% : 2d_point Bx(i%),By(i%) : next i%
  2d_fill_color 255,255,255 : 2d_circle cx,cy,ray% : 2d_circle cx,cy,2
END_SUB
rem ============================================================================
SUB Move(Type_trace%)
   off_key_down  0
   dim_local x,y,Mx,My,Nx,Ny,Ray,R,V,B,rad$,grd$,deg$
   Ray = 150 : R = 255 : V = 255 : B = 255
   if Type_trace% = 1 then R = 255 : V = 0 : B = 0
   2d_pen_color R,V,B
   x = ray*cos(angl*rad) : y = ray*sin(angl*rad) : 2d_line cx,cy,cx+x,cy-y
   2d_circle cx,cy,2
   deg$ = str$(Angl)
   rad$ = str$((Angl*pi)/180) : rad$=left$(rad$,5)
   grd$ = str$((Angl/360)*400): grd$=left$(grd$,7)
   Caption 0,"Visio Angles [ Degrés : "+deg$+"   Radians : "+rad$+"   Grades : "+grd$+" ]"
   on_key_down 0,Clic

END_SUB
rem ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jicehel

Jicehel


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

Souci avec 2d_image_paste Empty
MessageSujet: Re: Souci avec 2d_image_paste   Souci avec 2d_image_paste EmptyDim 3 Mai 2015 - 11:18

Ah ben oui Papydall, ça ça marchait bien mais Ygeronimi voulais l'angle sous forme de part de camembert ... d'où le 2d_flood qui génère le clignotement.
Si tu retires le camembert forcément ça ne clignote plus.
Non après la solution pourrais être de n'effacer ou de ne tracer que la portion de camembert qui change (le delta entre la position d'avant et la position actuelle) mais pas le temsp de faire ça aujourd'hui, on va aller au Playmobile fun parc...
Revenir en haut Aller en bas
Yannick




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

Souci avec 2d_image_paste Empty
MessageSujet: re   Souci avec 2d_image_paste EmptyDim 3 Mai 2015 - 13:55

Un peu de nostalgie Jicehel ?... Laughing

Effectivement Papydall mais on visualise moins bien l' angle... Wink
Revenir en haut Aller en bas
papydall

papydall


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

Souci avec 2d_image_paste Empty
MessageSujet: Re: Souci avec 2d_image_paste   Souci avec 2d_image_paste EmptyDim 3 Mai 2015 - 15:41

Du camembert, en veux-tu ? En voilà !
Tu veux mieux visualiser l’angle ?
Ça sera en rouge pour les angles positifs et en bleu pour les négatifs.

ZERO clignotement.

Code:
rem ============================================================================
label clic
dim sc%,Angl, pi, rad, Cx,Cy :  pi = acos(-1) : rad = pi/180
dim sens
height 0,600+38 : width 0,600+16 : Cx=width(0)/2 : Cy=height(0)/2
on_key_down 0,Clic
Caption 0,"Visio Angles [ Degrés - Radians - Grades ]"

picture 1 : full_space 1 : color 1,255,255,255 : Cx=width(1)/2 : Cy=height(1)/2
' Cadran(1,150,200)      : ' < ============================ Avec ZERO clignotement
Cadran(0,150,200)    : ' < ============================ Avec ZERO clignotement

end
rem ============================================================================
Clic:
  sc%=scancode
  if sc%=107 then  Angl=Angl+0.5: sens = 1 : Move(sens) : angl = angl + 1 : ' Signe +
  if Angl > 360 then Angl = Angl - 360
  if sc%=109 then   Angl=Angl-0.5 : sens = 0 : Move(sens) : angl = angl -1  : ' Signe -
  if Angl < 0-360 then Angl = Angl + 360
  if sc%=27  then terminate

return
rem ============================================================================
SUB Cadran(Obj%,Ray%,Ray2%)
  dim_local i%,Ang
  dim_local Ax(360),Ay(360),Bx(360),By(360),nbs%
  nbs%=360
'  reperage du centre de l' objet 2D
'  marques interieures
  for i%=1 to nbs% : Ang=rad*i% : Ax(i%)=Cx+(Ray%*cos(Ang))  : Ay(i%)=Cy+(Ray%*sin(Ang))  : next i%
'  marques exterieures
  for i%=1 to nbs% : Ang=rad*i% : Bx(i%)=Cx+(Ray2%*cos(Ang)) : By(i%)=Cy+(Ray2%*sin(Ang)) :next i%
  2d_target_is Obj%
  for i% = 45 to 360 step 45
      2d_pen_color 100,100,100
      2d_line Ax(i%),Ay(i%),Bx(i%),By(i%)
  next i%
  2d_pen_color 0,200,0
  for i%=1 to nbs% : 2d_point Bx(i%),By(i%) : next i%
  2d_fill_color 255,255,255 : 2d_circle cx,cy,ray% : 2d_circle cx,cy,2
END_SUB
rem ============================================================================
SUB Move(sens)
   off_key_down  0
   dim_local x,y,Mx,My,Nx,Ny,Ray,R,V,B,rad$,grd$,deg$
   Ray = 150
  if sens = 1
     if angl > 0 then r = 255 : v = 0 : b = 0 : else : r = 255 : v = 255 : b = 255
   else
        if angl > 0 then r = 255 : v = 255 : b = 255 : else : r = 0 : v = 0 : b = 255
   end_if
   2d_pen_color R,V,B : 2d_pen_width 6
   x = ray*cos(angl*rad) : y = ray*sin(angl*rad) : 2d_line cx,cy,cx+x,cy-y
   2d_circle cx,cy,2
   deg$ = str$(Angl)
   rad$ = str$((Angl*pi)/180) : rad$=left$(rad$,5)
   grd$ = str$((Angl/360)*400): grd$=left$(grd$,7)
   Caption 0,"Visio Angles [ Degrés : "+deg$+"   Radians : "+rad$+"   Grades : "+grd$+" ]"
   on_key_down 0,Clic

END_SUB
rem ============================================================================

Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
papydall

papydall


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

Souci avec 2d_image_paste Empty
MessageSujet: Re: Souci avec 2d_image_paste   Souci avec 2d_image_paste EmptyDim 3 Mai 2015 - 16:01

Une légère amélioration quand l’angle dépasse 360 ° en valeur absolue, on remet les couleurs à leur place.

NB : les angles varient de 1° en 1° dans les deux sens (positif / négatif)

Code:
rem ============================================================================
label clic
dim sc%,Angl, pi, rad, Cx,Cy :  pi = acos(-1) : rad = pi/180
dim sens
height 0,600+38 : width 0,600+16 : Cx=width(0)/2 : Cy=height(0)/2
on_key_down 0,Clic
Caption 0,"Visio Angles [ Degrés - Radians - Grades ]"
picture 1 : full_space 1 : color 1,255,255,255 : Cx=width(1)/2 : Cy=height(1)/2
Cadran(0,150,200)
' Cadran(1,150,200)
end
rem ============================================================================
Clic:
  sc%=scancode
  if sc%=107 then sens = 1 : Move(sens) : angl = angl + 1 : ' Signe +
  if Angl > 360 then Angl = Angl - 360
  if sc%=109 then sens = 0 : Move(sens) : angl = angl - 1 : ' Signe -
  if Angl < 0-360 then Angl = Angl + 360
  if sc%=27  then terminate

return
rem ============================================================================
SUB Cadran(Obj%,Ray%,Ray2%)
  dim_local i%,Ang
  dim_local Ax(360),Ay(360),Bx(360),By(360),nbs%
  nbs%=360
'  reperage du centre de l' objet 2D
'  marques interieures
  for i%=1 to nbs% : Ang=rad*i% : Ax(i%)=Cx+(Ray%*cos(Ang))  : Ay(i%)=Cy+(Ray%*sin(Ang))  : next i%
'  marques exterieures
  for i%=1 to nbs% : Ang=rad*i% : Bx(i%)=Cx+(Ray2%*cos(Ang)) : By(i%)=Cy+(Ray2%*sin(Ang)) :next i%
  2d_target_is Obj%
  for i% = 45 to 360 step 45
      2d_pen_color 100,100,100
      2d_line Ax(i%),Ay(i%),Bx(i%),By(i%)
  next i%
  2d_pen_color 0,200,0
  for i%=1 to nbs% : 2d_point Bx(i%),By(i%) : next i%
  2d_fill_color 255,255,255 : 2d_circle cx,cy,ray% : 2d_circle cx,cy,2
END_SUB
rem ============================================================================
SUB Move(sens)
   off_key_down  0
   dim_local x,y,Mx,My,Nx,Ny,Ray,R,V,B,rad$,grd$,deg$
   Ray = 150

  if sens = 1
     if angl > 0 then r = 255 : v = 0 : b = 0 : else : r = 255 : v = 255 : b = 255
   else
        if angl > 0 then r = 255 : v = 255 : b = 255 : else : r = 0 : v = 0 : b = 255
   end_if
   2d_pen_color R,V,B : 2d_pen_width 6
   x = ray*cos(angl*rad) : y = ray*sin(angl*rad) : 2d_line cx,cy,cx+x,cy-y
   2d_circle cx,cy,2
   if abs(angl) >= 360 then 2d_flood cx,cy,255,255,255
   deg$ = str$(Angl)
   rad$ = str$((Angl*pi)/180) : rad$=left$(rad$,5)
   grd$ = str$((Angl/360)*400): grd$=left$(grd$,7)
   Caption 0,"Visio Angles [ Degrés : "+deg$+"   Radians : "+rad$+"   Grades : "+grd$+" ]"
   on_key_down 0,Clic

END_SUB
rem ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jicehel

Jicehel


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

Souci avec 2d_image_paste Empty
MessageSujet: Re: Souci avec 2d_image_paste   Souci avec 2d_image_paste EmptyDim 3 Mai 2015 - 18:35

Oui, c'est très bien Par respect pour le cercle vert, j'ai fais une petite modif mineure.
Code:
rem ============================================================================
label clic
dim sc%,Angl, pi, rad, Cx,Cy :  pi = acos(-1) : rad = pi/180
dim sens
height 0,600+38 : width 0,600+16 : Cx=width(0)/2 : Cy=height(0)/2
on_key_down 0,Clic
Caption 0,"Visio Angles [ Degrés - Radians - Grades ]"
picture 1 : full_space 1 : color 1,255,255,255 : Cx=width(1)/2 : Cy=height(1)/2
Cadran(0,150,200)
' Cadran(1,150,200)
end
rem ============================================================================
Clic:
  sc%=scancode
  if sc%=107 then sens = 1 : Move(sens) : angl = angl + 1 : ' Signe +
  if Angl > 360 then Angl = Angl - 360
  if sc%=109 then sens = 0 : Move(sens) : angl = angl - 1 : ' Signe -
  if Angl < 0-360 then Angl = Angl + 360
  if sc%=27  then terminate

return
rem ============================================================================
SUB Cadran(Obj%,Ray%,Ray2%)
  dim_local i%,Ang
  dim_local Ax(360),Ay(360),Bx(360),By(360),nbs%
  nbs%=360
'  reperage du centre de l' objet 2D
'  marques interieures
  for i%=1 to nbs% : Ang=rad*i% : Ax(i%)=Cx+(Ray%*cos(Ang))  : Ay(i%)=Cy+(Ray%*sin(Ang))  : next i%
'  marques exterieures
  for i%=1 to nbs% : Ang=rad*i% : Bx(i%)=Cx+(Ray2%*cos(Ang)) : By(i%)=Cy+(Ray2%*sin(Ang)) :next i%
  2d_target_is Obj%
  for i% = 45 to 360 step 45
      2d_pen_color 100,100,100
      2d_line Ax(i%),Ay(i%),Bx(i%),By(i%)
  next i%
  2d_pen_color 0,200,0
  for i%=1 to nbs% : 2d_point Bx(i%),By(i%) : next i%
  2d_fill_color 255,255,255 : 2d_circle cx,cy,ray% : 2d_circle cx,cy,2
END_SUB
rem ============================================================================
SUB Move(sens)
  off_key_down  0
  dim_local x,y,Mx,My,Nx,Ny,Ray,R,V,B,rad$,grd$,deg$
  Ray = 150

  if sens = 1
    if angl > 0 then r = 255 : v = 0 : b = 0 : else : r = 255 : v = 255 : b = 255
  else
        if angl > 0 then r = 255 : v = 255 : b = 255 : else : r = 0 : v = 0 : b = 255
  end_if
  2d_pen_color R,V,B : 2d_pen_width 6
  x = (ray-4)*cos(angl*rad) : y = (ray-4)*sin(angl*rad) : 2d_line cx,cy,cx+x,cy-y
  2d_circle cx,cy,2
  if abs(angl) >= 360 then 2d_flood cx,cy,255,255,255
  deg$ = str$(Angl)
  rad$ = str$((Angl*pi)/180) : rad$=left$(rad$,5)
  grd$ = str$((Angl/360)*400): grd$=left$(grd$,7)
  Caption 0,"Visio Angles [ Degrés : "+deg$+"  Radians : "+rad$+"  Grades : "+grd$+" ]"
  on_key_down 0,Clic

END_SUB
rem ============================================================================
Revenir en haut Aller en bas
Yannick




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

Souci avec 2d_image_paste Empty
MessageSujet: re   Souci avec 2d_image_paste EmptyDim 3 Mai 2015 - 18:40

On pourrait laisser travailler les aiguilles sans remplissage couleur
et ajouter un On_key_up qui reprendrait le remplissage par sub de papydall.
cela permettrait d' avoir une aiguille plus fine... Twisted Evil
Revenir en haut Aller en bas
mindstorm

mindstorm


Nombre de messages : 685
Age : 55
Localisation : charente
Date d'inscription : 13/02/2013

Souci avec 2d_image_paste Empty
MessageSujet: Re: Souci avec 2d_image_paste   Souci avec 2d_image_paste EmptyLun 4 Mai 2015 - 18:51

bon d'accord je suis en retard
BON ANNIVERSAIRE ygeronimy
Revenir en haut Aller en bas
Yannick




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

Souci avec 2d_image_paste Empty
MessageSujet: re   Souci avec 2d_image_paste EmptyLun 4 Mai 2015 - 19:10

merci Mindstorm !
Very Happy
Revenir en haut Aller en bas
silverman

silverman


Nombre de messages : 968
Age : 51
Localisation : Picardie
Date d'inscription : 18/03/2015

Souci avec 2d_image_paste Empty
MessageSujet: Re: Souci avec 2d_image_paste   Souci avec 2d_image_paste EmptyMar 5 Mai 2015 - 12:46

Salut à tous,

ma contribution également:
- l'aiguille est très fine
-affiche une aiguille verte à angle=0
- l'aiguille travaille sans remplissage et ne laisse plus de trace quant elle se déplace
Code:

    rem ============================================================================
    label clic
    dim sc%,Angl, pi, rad, Cx,Cy :  pi = acos(-1) : rad = pi/180
    dim sens
    height 0,600+38 : width 0,600+16 : Cx=width(0)/2 : Cy=height(0)/2
    on_key_down 0,Clic
    Caption 0,"Visio Angles [ Degrés - Radians - Grades ]"
    picture 1 : full_space 1 : color 1,255,255,255 : Cx=width(1)/2 : Cy=height(1)/2
    Cadran(0,150,200)
    move(0): ' ajouté un affichage de la position initiale(aiguille verte)
    ' Cadran(1,150,200)
    end
    rem ============================================================================
    Clic:
      sc%=scancode
      if sc%=107 then sens = 1 : angl = angl + 1  : Move(sens): ' Signe +
      if Angl > 360 then Angl = Angl - 360
      if sc%=109 then sens = -1 : angl = angl - 1 : Move(sens) : ' Signe -  /modifié valeur de sens pour l'exploiter dans la sub move()
      if Angl < 0-360 then Angl = Angl + 360
      if sc%=27  then terminate

    return
    rem ============================================================================
    SUB Cadran(Obj%,Ray%,Ray2%)
      dim_local i%,Ang
      dim_local Ax(360),Ay(360),Bx(360),By(360),nbs%
      nbs%=360
    '  reperage du centre de l' objet 2D
    '  marques interieures
      for i%=1 to nbs% : Ang=rad*i% : Ax(i%)=Cx+(Ray%*cos(Ang))  : Ay(i%)=Cy+(Ray%*sin(Ang))  : next i%
    '  marques exterieures
      for i%=1 to nbs% : Ang=rad*i% : Bx(i%)=Cx+(Ray2%*cos(Ang)) : By(i%)=Cy+(Ray2%*sin(Ang)) :next i%
      2d_target_is Obj%
      for i% = 45 to 360 step 45
          2d_pen_color 100,100,100
          2d_line Ax(i%),Ay(i%),Bx(i%),By(i%)
      next i%
      2d_pen_color 0,200,0
      for i%=1 to nbs% : 2d_point Bx(i%),By(i%) : next i%
      2d_fill_color 255,255,255 : 2d_circle cx,cy,ray% : 2d_circle cx,cy,2
    END_SUB
    rem ============================================================================
    SUB Move(sens)
      off_key_down  0
      dim_local x,y,Mx,My,Nx,Ny,Ray,R,V,B,rad$,grd$,deg$
      Ray = 150
      ' aiguille rouge si angl est +, bleue si -, verte si 0
        if angl > 0
           r = 255 : v = 0 : b = 0
        else
           if angl=0
              r = 0 : v = 128 : b = 0
           else
              r = 0 : v = 0 : b = 255
           end_if
        end_if
      ' efface l'aiguille précedente
      2d_pen_color 255,255,255 : 2d_pen_width 1
      x = (ray-4)*cos((angl-sens)*rad) : y = (ray-4)*sin((angl-sens)*rad) : 2d_line cx,cy,cx+x,cy-y
      
      2d_pen_color R,V,B
      x = (ray-4)*cos(angl*rad) : y = (ray-4)*sin(angl*rad) : 2d_line cx,cy,cx+x,cy-y
      2d_circle cx,cy,2
      if abs(angl) >= 360 then 2d_flood cx,cy,255,255,255
      deg$ = str$(Angl)
      rad$ = str$((Angl*pi)/180) : rad$=left$(rad$,5)
      grd$ = str$((Angl/360)*400): grd$=left$(grd$,7)
      Caption 0,"Visio Angles [ Degrés : "+deg$+"  Radians : "+rad$+"  Grades : "+grd$+" ]"
      on_key_down 0,Clic

    END_SUB
    rem ============================================================================
Revenir en haut Aller en bas
Contenu sponsorisé





Souci avec 2d_image_paste Empty
MessageSujet: Re: Souci avec 2d_image_paste   Souci avec 2d_image_paste Empty

Revenir en haut Aller en bas
 
Souci avec 2d_image_paste
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Souci avec ISAM
» [Grid_Load] petit souci
» petit souci avec une dim_local
» KGF_dll - nouvelles versions
» EDI réalisé entièrement en Panoramic

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: