FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Gestionnaire de Projets Panoramic
par Minibug Aujourd'hui à 2:10

» Mah-Jong européen new-look
par jjn4 Hier à 16:35

» Button_picture
par pascal10000 Hier à 11:41

» Pourquoi le compilateur stagne
par Minibug Hier à 11:09

» 4 (en analyse): SYNEDIT_TARGET_IS_OBJECT devient inactif
par Jack Hier à 10:09

» 3 (en analyse): Mauvaise interprétation du string "THEN"
par Jack Hier à 10:03

» KGF.dll - demandes ou suggestions de modifications ou ajouts
par Marc Hier à 10:00

» KGF_dll - nouvelles versions
par pascal10000 Mer 13 Déc 2017 - 17:27

» track_bar circulaire
par Klaus Mar 12 Déc 2017 - 13:54

» API Windows
par Klaus Mar 12 Déc 2017 - 3:21

» Cartes de voeux, menus, etc.
par JL35 Lun 11 Déc 2017 - 17:48

» a l'aide klaus
par Minibug Lun 11 Déc 2017 - 11:42

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Lun 11 Déc 2017 - 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

» Ecouter la radio fm sur votre pc
par pascal10000 Sam 9 Déc 2017 - 3:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

Partagez | 
 

 Souci avec 2d_image_paste

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: Souci avec 2d_image_paste   Sam 2 Mai 2015 - 5: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
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Souci avec 2d_image_paste   Sam 2 Mai 2015 - 10: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
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jicehel

avatar

Nombre de messages : 5863
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Souci avec 2d_image_paste   Sam 2 Mai 2015 - 10: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
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 2 Mai 2015 - 14: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
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5863
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Souci avec 2d_image_paste   Sam 2 Mai 2015 - 16: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
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Souci avec 2d_image_paste   Sam 2 Mai 2015 - 18: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
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

Nombre de messages : 5863
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Souci avec 2d_image_paste   Sam 2 Mai 2015 - 19: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
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 3 Mai 2015 - 2: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
Voir le profil de l'utilisateur
papydall

avatar

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

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

 Bon anniversaire  


Spoiler:
 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Nardo26

avatar

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

MessageSujet: Re: Souci avec 2d_image_paste   Dim 3 Mai 2015 - 4:33

ygeronimi !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 3 Mai 2015 - 4: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
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 3 Mai 2015 - 4:37

Merci les gars !
drunken
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nardo26

avatar

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

MessageSujet: Re: Souci avec 2d_image_paste   Dim 3 Mai 2015 - 4: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 3 Mai 2015 - 5: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
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Souci avec 2d_image_paste   Dim 3 Mai 2015 - 7:36


  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
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

Nombre de messages : 5863
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Souci avec 2d_image_paste   Dim 3 Mai 2015 - 12: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
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 3 Mai 2015 - 14:55

Un peu de nostalgie Jicehel ?... Laughing

Effectivement Papydall mais on visualise moins bien l' angle... Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Souci avec 2d_image_paste   Dim 3 Mai 2015 - 16: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
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
papydall

avatar

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

MessageSujet: Re: Souci avec 2d_image_paste   Dim 3 Mai 2015 - 17: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
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

Nombre de messages : 5863
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Souci avec 2d_image_paste   Dim 3 Mai 2015 - 19: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
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 3 Mai 2015 - 19: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
Voir le profil de l'utilisateur
mindstorm

avatar

Nombre de messages : 542
Age : 48
Localisation : charente
Date d'inscription : 13/02/2013

MessageSujet: Re: Souci avec 2d_image_paste   Lun 4 Mai 2015 - 19:51

bon d'accord je suis en retard
BON ANNIVERSAIRE ygeronimy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 4 Mai 2015 - 20:10

merci Mindstorm !
Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
silverman

avatar

Nombre de messages : 475
Age : 45
Localisation : Picardie
Date d'inscription : 19/03/2015

MessageSujet: Re: Souci avec 2d_image_paste   Mar 5 Mai 2015 - 13: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
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Souci avec 2d_image_paste   

Revenir en haut Aller en bas
 
Souci avec 2d_image_paste
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Résolu] Aide... j'ai un souci avec mon PC
» Souci avec mon album photo
» Souci avec la nouvelle MAJ Firefox
» gros souci avec mon nuvi 200
» [Fermé] Ask Toolbar, Search Guard Plus, Search Guard Plus Updater, Fast Browser Search -- gros souci avec mon pc

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: