Sampai sekarang saya menggunakan karakter untuk menggambar gambar, bentuk dll di terminal.
Apakah mungkin menggambar satu piksel?
Katakanlah:
foo 1 1 red
Ini akan menggambar pixel merah di koordinat (1, 1)
.
Apakah ada aplikasi yang sudah ada yang akan melakukan pekerjaan ini?
Saat ini menjalankan Ubuntu 14.04.
DEC GT40
akan berguna, tetapi terlalu mahal ... :-)Jawaban:
Terminal adalah tampilan sel karakter dan tidak mendukung menggambar grafik piksel. Bahkan ketika berjalan di X11; walaupun tentu saja mungkin untuk menggambar piksel individu ketika berbicara langsung ke server X, jika program Anda berbicara dengan terminal, ia hanya dapat meminta terminal untuk menampilkan karakter.
Untuk menampilkan grafik alih-alih teks, Anda harus menulis program yang berinteraksi langsung dengan server X. Ini biasanya dilakukan melalui pustaka toolkit UI seperti GTK , Qt , atau wxWidgets .
sumber
xterm
, atau penyematan gambarterminology
). Perhatikan bahwa terminal juga merujuk ke terminal X11 (penerus hal-hal seperti yang Tektronix)Silahkan lihat di perpustakaan Drawille . Ia menggunakan karakter braille UTF untuk menggambar piksel.
sumber
Anda tidak akan dapat menggambar warna piksel tunggal di terminal kecuali Anda dapat melakukan apa yang Wyzard sebutkan, memprogramnya sendiri, atau menemukan alat yang sudah dibuat untuk pekerjaan itu (ini bisa khusus terminal). Namun dimungkinkan untuk menggunakan koordinat karakter individual di terminal Anda untuk menggambar gambar 2D menggunakan karakter ASCII dan UTF-8. Alat untuk ini disebut
tput
. Alat ini berfungsi dengan memanipulasi posisi kursor sesuai dengan koordinat terminal Anda saat ini. Berikut adalah daftar contohtput
fungsi:sumber
Selain dari toolkit widget utama (GTK, Qt, wxWidgets) disebutkan dalam jawaban Wyzard ini Anda juga dapat mempertimbangkan media lebih berorientasi perpustakaan seperti SFML atau libSDL . Jika Anda hanya ingin keluaran grafis (hampir tanpa interaksi), Anda bahkan dapat mempertimbangkan CairoGraphics .
Dalam beberapa kasus Anda mungkin menggunakan, melalui pipa (misalnya popen ) atau pada baris perintah, utilitas perintah seperti GNUplot atau GraphViz .
Anda juga dapat mempertimbangkan untuk menggunakan kemampuan grafis dari browser Anda, misalnya dengan mengode beberapa aplikasi web khusus (menggunakan beberapa perpustakaan server HTTP seperti Wt atau libonion , dengan teknologi web seperti AJAX, SVG, HTML5, kanvas, sakelar web, dll ...)
Tetapi kebanyakan emulator terminal tidak memiliki atau terlalu sedikit kemampuan grafis (sehingga tidak ada grafik piksel asli). Jadi, Anda praktis membutuhkan program Anda untuk berinteraksi dengan server tampilan ( X11 , Wayland , ...).
sumber