2 lipca 2018

xterm - vector graphic display

Lata 70. zaowocowały pojawieniem się komputerów firmy Tektronix oferujących wyświetlanie grafiki wektorowej, co spopularyzowało ich użycie przez inżynierów i projektantów, szczególnie w środowiskach CAD.
Tektronics 4014 US map.jpg

By David Gesswein / GNUplot - http://www.pdp8.net/tek4010/tek4010.shtml, CC BY-SA 4.0, Link

Co ciekawe, xterm pozwala na emulowanie tego typu terminali (tek4014/tek4015/tek4012/tek4013/tek4010), umożliwiając wyświetlanie grafiki wektorowej bezpośrednio w konsoli. Dostępna jest emulacja tylko terminali monochromatycznych, a konsola nie pozwala na zamazywania znaku po wciśnięciu Backspace. Być może jest to kwestia, jakiś dodatkowych opcji konfiguracyjnych.
xterm -t
Jednym z programów, który korzysta z tych możliwości jest gnuplot. Wszystko co trzeba zrobić to ustawienie w skrypcie terminala jako xterm, vvtek lub tek40xx (zauważyłem też opcję tek410x, ale xterm nie radzi sobie z jej obsługą). Poniżej przerobiony przeze mnie przykład autorstwa Hagen Wierstorf: "Plotting the world revisited". Rożnica, którą ja dostrzegłem to to, że opcja xterm rysuje grafikę w osobnym oknie, vttek, w tym samym w którym uruchomiany jest gnuplot, a tek40xx jest zdecydowanie najszybsze w rysowaniu.
#!/usr/bin/gnuplot
#
# Plotting the world with the natural earth data set (3D)
#
# Original AUTHOR: Hagen Wierstorf
# Original source: http://www.gnuplotting.org/code/world3d_revisited.gnu
#
# http://www.gnuplotting.org/plotting-the-world-revisited/

reset

# set terminal vttek
# set terminal xterm
set terminal tek40xx

unset key; unset border
set tics scale 0
set lmargin screen 0
set bmargin screen 0
set rmargin screen 1
set tmargin screen 1
set format ''

set mapping spherical
set angles degrees
set hidden3d
# Set xy-plane to intersect z axis at -1 to avoid an offset between the lowest z
# value and the plane
set xyplane at -1
set view 56,81

set parametric
set isosamples 25
set urange[0:360]
set vrange[-90:90]

r = 0.99
splot r*cos(v)*cos(u),r*cos(v)*sin(u),r*sin(v) with lines, \
      'world_110m.txt' with lines
A prezentuje się to tak:

Brak komentarzy:

Prześlij komentarz