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
» trop de fichiers en cours
PRINT_LOCATE Emptypar lepetitmarocain Aujourd'hui à 10:43

» Aide de PANORAMIC
PRINT_LOCATE Emptypar papydall Aujourd'hui à 4:21

» Je teste PANORAMIC V 1 beta 1
PRINT_LOCATE Emptypar papydall Aujourd'hui à 4:17

» select intégrés
PRINT_LOCATE Emptypar jjn4 Hier à 18:33

» PANORAMIC V 1
PRINT_LOCATE Emptypar Klaus Hier à 9:53

» bouton dans autre form que 0
PRINT_LOCATE Emptypar leclode Lun 6 Mai 2024 - 13:59

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

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

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
PRINT_LOCATE Emptypar Froggy One Jeu 2 Mai 2024 - 11:16

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

» Une calculatrice en une ligne de programme
PRINT_LOCATE Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
PRINT_LOCATE Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
PRINT_LOCATE Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
PRINT_LOCATE Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
PRINT_LOCATE Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-20%
Le deal à ne pas rater :
-20% Récupérateur à eau mural 300 litres (Anthracite)
79 € 99 €
Voir le deal

 

 PRINT_LOCATE

Aller en bas 
3 participants
AuteurMessage
JL35




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

PRINT_LOCATE Empty
MessageSujet: PRINT_LOCATE   PRINT_LOCATE EmptyVen 8 Avr 2022 - 13:28

Code:
DIM x
PICTURE 1: WIDTH 1,200: 2D_TARGET_IS 1: PRINT_TARGET_IS 1
x = 20: 2D_LINE x,0,x,100: FONT_SIZE 1,8
PRINT_LOCATE x-2,5: PRINT "x"
PRINT_LOCATE x+1,30: PRINT "Print Locate x+1"
PRINT_LOCATE x+2,50: PRINT "Print Locate x+2"
PRINT_LOCATE x+3,70: PRINT "Print Locate x+3"
PRINT_LOCATE Exempl19
Pourquoi l'affichage demandé en x+1 commence-t'il systématiquement en x, ou même x-1 comme ici suivant la taille de la police ?
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

PRINT_LOCATE Empty
MessageSujet: Re: PRINT_LOCATE   PRINT_LOCATE EmptyVen 8 Avr 2022 - 14:27

Bonjour JL35 !

Ben non pour moi il y a bien un décalage de 1 pixel.

Essaies ton code mais avec un décalage de 10 et cela fonctionne parfaitement selon moi :

Code:

DIM x
PICTURE 1: WIDTH 1,200: 2D_TARGET_IS 1: PRINT_TARGET_IS 1
x = 20: 2D_LINE x,0,x,100: FONT_SIZE 1,8
PRINT_LOCATE x-20,5: PRINT "x"
PRINT_LOCATE x+10,30: PRINT "Print Locate x+10"
PRINT_LOCATE x+20,50: PRINT "Print Locate x+20"
PRINT_LOCATE x+30,70: PRINT "Print Locate x+30"
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
silverman

silverman


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

PRINT_LOCATE Empty
MessageSujet: Re: PRINT_LOCATE   PRINT_LOCATE EmptyVen 8 Avr 2022 - 15:25

Le décalage, c'est peut être parceque la police ne commence pas au bord de sa matrice, mais qu'elle est décalée de 1(ou plusieurs) pixel(s)
Revenir en haut Aller en bas
JL35




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

PRINT_LOCATE Empty
MessageSujet: Re: PRINT_LOCATE   PRINT_LOCATE EmptyVen 8 Avr 2022 - 15:53

Bonjour Minibug,
je ne comprends pas bien... pour moi le problème est que je demande à imprimer au point x,y,
et que le point x-1 est concerné.
Et même x-2 pour une taille de 8 (mais pas pour une taille de 10... et ça dépend aussi de la police)

Bonjour silverman,
tu as probablement raison, mais le début d'impression ne devrait se faire qu'à partir du point demandé...
Tu dessines un rectangle en x,y et tu écris en x+1,y+1, le rectangle est touché.
Revenir en haut Aller en bas
silverman

silverman


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

PRINT_LOCATE Empty
MessageSujet: Re: PRINT_LOCATE   PRINT_LOCATE EmptyVen 8 Avr 2022 - 18:08

En utilisant ce code:
Code:
DIM x
PICTURE 1: WIDTH 1,500: height 1,1000: 2D_TARGET_IS 1: PRINT_TARGET_IS 1
top 0,300
x = 1: 2D_LINE x,0,x,100: FONT_SIZE 1,38
color 1,255,128,0
font_name 1,"arial black"
PRINT_LOCATE x,5: PRINT "x"
PRINT_LOCATE x,3*30: PRINT "w"
PRINT_LOCATE x,3*60: PRINT "P"
et la loupe des accessoires windows, je me suis aperçu que le décalage disparaissait, et les caractères étaient un peu différent(+ d'aliasing)! Je soupçonne un traitement de l'affichage par windows qui favoriserait ce décalage, et panoramic n'y serait pour rien.
Revenir en haut Aller en bas
JL35




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

PRINT_LOCATE Empty
MessageSujet: Re: PRINT_LOCATE   PRINT_LOCATE EmptyVen 8 Avr 2022 - 21:22

C'est probable, mail il faut en tenir compte...
J'avais fait une espèce de grille avec des rectangles consécutifs, et c'est en écrivant dans les cases (en +1)
que j'ai vu qu'on bouffait effaçait une paroi des rectangles...
Revenir en haut Aller en bas
silverman

silverman


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

PRINT_LOCATE Empty
MessageSujet: Re: PRINT_LOCATE   PRINT_LOCATE EmptyDim 10 Avr 2022 - 20:24

Il est possible de mesurer ce décalage et le principe est simple.
Voici un code (perfectible):
Code:
DIM x
dim Fontoffset
dim size,fnam$,mytxt$

PICTURE 1: WIDTH 1,1000: height 1,1000
2D_TARGET_IS 1 : PRINT_TARGET_IS 1

x = 10: 2D_LINE x,0,x,500

size = 20
fnam$="arial"
mytxt$="Ceci est un test"
'
FONT_SIZE 1,size: font_name 1,fnam$
Font_offset(mytxt$,fnam$,size)

PRINT_LOCATE x + 1 + Fontoffset,10: PRINT mytxt$



END
sub Font_offset(txt$,FontName$,FontSize)
   dim_local obj,oldNPT,i
   obj=8000
   oldNPT=number_print_target
   if object_exists(obj)=0
      create_hide
       PICTURE obj: WIDTH obj,1000: height obj,1000
      create_show
   end_if
   '
   PRINT_TARGET_IS obj
   font_name obj,FontName$
   FONT_SIZE obj,FontSize
   font_color obj,255,255,255
   '
   color obj,255,128,0
   PRINT_LOCATE 5,5: PRINT txt$
   for i=0 to 10
      if color_pixel_blue(obj,i,5)=255
         Fontoffset = 5-i
         caption 0,"décalage = " + str$(Fontoffset)
         exit_for
      end_if
   next i  
   '
   PRINT_TARGET_IS oldNPT
end_sub
Revenir en haut Aller en bas
JL35




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

PRINT_LOCATE Empty
MessageSujet: Re: PRINT_LOCATE   PRINT_LOCATE EmptyDim 10 Avr 2022 - 21:58

Bonsoir silverman,

et merci pour ton code, ça peut m'être très utile et je me le garde sous le coude !
PS:
Ma sub, très largement inspirée de la tienne !
Code:
SUB Pr_ofs(tx$,fnt$,sz)
  ' Calcul de l'offset du décalage de la position d'affichage réelle de tx$
  ' (fonction PRINT_LOCATE) en fonction de la police et de la taille
  ' Résultat en pixels dans ofs (défini dans l'appelant), à ajouter
  ' au x de PRINT_LOCATE (idée origine silverman)
  IF LABEL("ofs") = 9 THEN LABEL ofs
  DIM_LOCAL p,pt,p2,x
  p2 = NUMBER_2D_TARGET: pt = NUMBER_PRINT_TARGET
  p = 8000: PICTURE p: 2D_TARGET_IS p: PRINT_TARGET_IS p
  FONT_NAME p,fnt$: FONT_SIZE p,sz
  FOR x = 0 TO 4: 2D_LINE x,0,x,50: NEXT x
  PRINT_LOCATE 5,0: PRINT LEFT$(tx$,1)
  FOR x = 4 TO 0 STEP -1
      IF COLOR_PIXEL_BLUE(p,x,0) = 0 THEN EXIT_FOR
  NEXT x
  ofs = 4-x
  2D_TARGET_IS p2: PRINT_TARGET_IS pt: DELETE p
END_SUB
Revenir en haut Aller en bas
Contenu sponsorisé





PRINT_LOCATE Empty
MessageSujet: Re: PRINT_LOCATE   PRINT_LOCATE Empty

Revenir en haut Aller en bas
 
PRINT_LOCATE
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Présentation et bavardage-
Sauter vers: