VectorTextWidth()

Syntaxe

Resultat.d = VectorTextWidth(Texte$ [, Options])
Description
Mesure la largeur du texte donné dans la police de dessin vectoriel en cours.

Arguments

Texte$ Le texte (une seule ligne) à mesurer.
Options (optionnel) Peut être une combinaison des valeurs suivantes:
   #PB_VectorText_Default: Renvoie la zone de délimitation logique du texte
   #PB_VectorText_Visible: Renvoie la zone de délimitation visible du texte
   #PB_VectorText_Offset : Renvoie le décalage de la zone de délimitation de la position actuelle à la place de la largeur

Valeur de retour

Renvoie la largeur du texte en unités de mesure utilisée par la sortie du dessin vectoriel.

Remarques

Les dimensions du texte peuvent être définies en terme de deux boîtes englobantes:

La "boîte englobante logique" d'un caractère ou d'un texte définit l'espace que le curseur doit parcourir pour dessiner correctement le texte. Cependant, certains caractères peuvent s'étendre au-delà de cette boîte (par exemple en cas de cursive ou d'Empattement (sérif). Intéressant pour déterminer l'emplacement d'un texte.

La "boîte englobante visible" d'un caractère ou d'un texte définit la zone dans laquelle le texte est effectivement dessiné.
Cette zone est généralement plus grande que la zone de délimitation logique. Les dimensions visibles du texte peuvent être récupérées en spécifiant l'option #PB_VectorText_Visible. Les dimensions visibles du texte peuvent être en décalage par rapport aux dimensions logiques. Ce décalage peut être calculé en spécifiant l'option #PB_VectorText_Offset.

L'exemple suivant montre un texte avec la zone de délimitation logique en bleu, la zone de délimitation visible en rouge et l'emplacement de la ligne de base en vert. Le début du texte est dessiné dans le coin supérieur gauche de la zone de délimitation logique (bleu).

Exemple

  If OpenWindow(0, 0, 0, 500, 250, "VectorDrawing", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    CanvasGadget(0, 0, 0, 500, 250)
    LoadFont(0, "Monotype Corsiva", 20, #PB_Font_Italic)
    
    If StartVectorDrawing(CanvasVectorOutput(0))
    
      VectorFont(FontID(0), 125)
      Texte$ = "Exemple"
      
      ; dessin du texte
      MovePathCursor(25, 25)
      DrawVectorText(Texte$)
      
      ; dessin  de la boîte englobante logique (en bleu)
      AddPathBox(25, 25, VectorTextWidth(Texte$), VectorTextHeight(Texte$))
      VectorSourceColor(RGBA(0, 0, 255, 255))
      DashPath(2, 10)

      ; dessin de la boîte englobante visible (en rouge)
      AddPathBox(25 + VectorTextWidth(Texte$, #PB_VectorText_Visible|#PB_VectorText_Offset), 
                 25 + VectorTextHeight(Texte$, #PB_VectorText_Visible|#PB_VectorText_Offset), 
                 VectorTextWidth(Texte$, #PB_VectorText_Visible), 
                 VectorTextHeight(Texte$, #PB_VectorText_Visible))
      VectorSourceColor(RGBA(255, 0, 0, 255))
      DashPath(2, 10)        
      
      ; dessin de la ligne de base (en vert)
      MovePathCursor(25, 25 + VectorTextHeight(Texte$, #PB_VectorText_Baseline))
      AddPathLine(VectorTextWidth(Texte$), 0, #PB_Path_Relative)
      VectorSourceColor(RGBA(0, 255, 0, 255))
      DashPath(2, 10)                    

      StopVectorDrawing()
    EndIf
    
    Repeat
      Event = WaitWindowEvent()
    Until Event = #PB_Event_CloseWindow
  EndIf

Voir aussi

VectorTextHeight(), DrawVectorText(), DrawVectorParagraph(), VectorParagraphHeight(), VectorFont()

OS Supportés

Tous

<- VectorTextHeight() - VectorDrawing Index - VectorUnit() ->