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