VectorTextHeight()

Syntax

Ergebnis.d = VectorTextHeight(Text$ [, Flags])
Beschreibung
Misst die Höhe des angegebenen Textes in der aktuellen Vektorzeichnen Schriftart.

Parameter

Text$ Der zu messende Text (einzeilig).
Flags (optional) Dies kann eine Kombination der folgenden Werte sein:
  #PB_VectorText_Default : Gibt den logischen Begrenzungsrahmen des Textes zurück
  #PB_VectorText_Visible : Gibt den sichtbaren Begrenzungsrahmen des Textes zurück
  #PB_VectorText_Offset  : Gibt ausgehend von der aktuellen Position den Offset 
                           des Begrenzungsrahmens anstelle der Höhe zurück
  #PB_VectorText_Baseline: Gibt den Offset der Grundlinie des Textes von der
                           aktuellen Position zurück

Rückgabewert

Gibt die Texthöhe in Einheiten der Vektorzeichnen-Ausgabe zurück.

Anmerkungen

Die Abmessungen des gezeichneten Textes können im Hinblick auf die beiden Zeichen-Boxen (Begrenzungsrahmen) wie folgt definiert werden:

Die "logische Zeichen-Box" (englisch "logical bounding box") eines Zeichens oder eines Textes definiert den Raum, den der Cursor bewegt werden muss, um den Text richtig nebeneinander zu zeichnen. Jedoch können die tatsächlich gezeichneten Zeichen über diese Box hinausragen (zum Beispiel im Falle von Kursiv- oder oder Serif-Schriften). Bei der Bestimmung, wo der Text gezeichnet werden soll, ist die logische Zeichen-Box die interessante.

Die "sichtbare Zeichen-Box" (englisch "visible bounding box") eines Zeichens oder eines Textes definiert den Raum, in welchem der Text aktuell gezeichnet wird. Dieser Bereich ist üblicherweise größer als die logische Zeichen-Box. Die sichtbaren Abmessungen eines Textes können ermittelt werden durch Angabe des #PB_VectorText_Visible Flags. Die sichtbaren Abmessungen des Textes können bei einem Offset zur logischen Zeichen-Box liegen. Dieser Versatz kann durch Angabe des #PB_VectorText_Offset Flags berechnet werden.

Die "Grundlinie" definiert die vertikale Distanz vom Ursprung des gezeichneten Textes bis zur Linie, auf der die Buchstaben "sitzen". Diese ist nützlich, um Text mit verschiedenen Höhen auf einer einzigen Linie zu zeichnen. Der Grundlinien-Wert für den Text kann durch Angabe des #PB_VectorText_Baseline Flags ermittelt werden.

Das folgende Beispiel zeigt einen Beispieltext mit der logischen Zeichen-Box in Blau, der sichtbaren Zeichen-Box in Rot, und der Position der Grundlinie in Grün. Der Ursprung, an dem der Text gezeichnet wird, ist die obere linke Ecke der logischen Zeichen-Box (Blau).

Beispiel

  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)
      Text$ = "Sample"
      
      ; Zeichne Text
      MovePathCursor(25, 25)
      DrawVectorText(Text$)
      
      ; Zeichne die logische Zeichen-Box
      AddPathBox(25, 25, VectorTextWidth(Text$), VectorTextHeight(Text$))
      VectorSourceColor(RGBA(0, 0, 255, 255))
      DashPath(2, 10)

      ; Zeichne die sichtbare Zeichen-Box
      AddPathBox(25 + VectorTextWidth(Text$, #PB_VectorText_Visible|#PB_VectorText_Offset), 
                 25 + VectorTextHeight(Text$, #PB_VectorText_Visible|#PB_VectorText_Offset), 
                 VectorTextWidth(Text$, #PB_VectorText_Visible), 
                 VectorTextHeight(Text$, #PB_VectorText_Visible))
      VectorSourceColor(RGBA(255, 0, 0, 255))
      DashPath(2, 10)        
      
      ; Zeichen die Grundlinie
      MovePathCursor(25, 25 + VectorTextHeight(Text$, #PB_VectorText_Baseline))
      AddPathLine(VectorTextWidth(Text$), 0, #PB_Path_Relative)
      VectorSourceColor(RGBA(0, 255, 0, 255))
      DashPath(2, 10)                    

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

Siehe auch

VectorTextWidth(), DrawVectorText(), DrawVectorParagraph(), VectorParagraphHeight(), VectorFont()

Unterstützte OS

Alle

<- VectorSourceLinearGradient() - VectorDrawing Inhaltsverzeichnis - VectorTextWidth() ->