Seitenleiste

Community

GUIs

Einstieg

Plattformübergreifend

Konsolenbasiert

Linien zeichnen

Grundsätzlich bietet NCurses die Möglichkeit einfache Linien zu zeichnen, allerdings handelt es sich nur um horizontale und vertikale Linien. Für ideale Linien, die beliebig über den Bildschirm laufen, empfielt es sich, eine eigene Implementation des Bresenham-Algorithmus zu verwenden.

Auf dem Hauptfenster zeichnen

Die einfachsten Funktionen hierfür sind hline() und vline(). Hier wird einfach das Zeichen angegeben und die Länge der Linie in Zeichen:

Die Zeile

hline( ACS_HLINE, 5 )

erzeugt eine horizontale Linie, bestehend aus 5 horizontalen Linienabschnitten ('─'). Hiermit lassen sich auch Bereiche löschen, in dem Leerzeichen verwendet werden, oder es lässt sich ein Fortschrittsbalken oder horizontaler Scrollbalken beispielsweise mit dem '#'-Zeichen darstellen.

Ein vertikaler Scrollbalken ließe sich also beispeilsweise mit folgender Zeile erzeugen:

vline( '#', 5 )

Hierbei ist zu beachten, dass beide Funktionen an der Stelle beginnen, wo der Cursor gerade steht. hline() zeichnet dabei von links nach rechts und vline von oben nach unten. Beide Funktionen zeichnen nicht über das Fenster hinaus.

Auf eigene Fenster zeichnen

Um in ein bestimmtes Fenster zu zeichnen, gibt es auch hier die entsprechenden Funktionen mit dem 'w'-Präfix: whline() und wvline().

An einer festgelegten Position zeichnen

Statt den Cursor mit der move(), bzw. wmove()-Funktion erst an die passende Stelle zu rücken gibt es die Varianten mvhline() und mvvline(). Natürlich sind die wichtigsten Funktionen mit dem meisten Präfixen, die den Cursor eines eigenen Fensters setzen und dann die Linien zeichnen und damit auch die kryptischsten: mvwhline() und mvwvline().