LINUX.ORG.RU

Построить график в терминале на си

 , , ,


0

2

Привет! Пишу на си. Хочу брать катировки по какой-нибудь валютной паре и строить график «японские свечи» в своём уютном urxvt.

В общем требуется строить прямоугольники, вертикальные прямые, ресайзить при изменении окна, обрабатывать нажатия кнопок.

Почитал про ncurses, svgalib, libsdl, directfb. Пока наиболее привлекательными выглядят первые две. С другой стороны было бы полезным освоить и артилерию потяжелее, т.е. sdl или directfb.. С sdl гуглятся примеры с отдельным иксовым окном. Отдельное окно мне не подходит.

Ищу баланс между самым простым и не самым старым. Может кто-то с чем-то имел дело? Надеюсь ЛОР мне поможет определиться :)


SDL умеет выводить на фреймбуффер в линуксовой консоли, без иксов.

Но, по-моему, хватит и ncurses с лихвой. ncursesw вообще умеет юникодные символы

schizoid ★★★
()
Ответ на: комментарий от schizoid

SDL умеет выводить на фреймбуффер в линуксовой консоли, без иксов.

Я так кино когда-то смотрел. Подозреваю, что код будет работать в настоящей консоли с фреймбуфером, но ничего не получится в иксах.

Но, по-моему, хватит и ncurses с лихвой. ncursesw вообще умеет юникодные символы

Спасибо, присмотрюсь поближе.

RiD
() автор топика
Ответ на: комментарий от RiD

Подозреваю, что код будет работать в настоящей консоли с фреймбуфером, но ничего не получится в иксах.

SDL чхать, на какой контекст выводить, у неё есть опции для работы с иксами и с fb одновременно.

schizoid ★★★
()
Ответ на: комментарий от schizoid

SDL чхать, на какой контекст выводить

ТС хочет «в своём уютном urxvt ... Отдельное окно мне не подходит.». Думаю, _так_, SDL не умеет.

monk ★★★★★
()

не мучься и осиль R или octave.

dikiy ★★☆☆☆
()
Ответ на: комментарий от monk

ТС хочет «в своём уютном urxvt ... Отдельное окно мне не подходит.». Думаю, _так_, SDL не умеет.

тогда только ncurses. Но еще кажись xterm поддерживает реальную графику, через какое-то олдовое расширение. beastie в курсе. Я видел у него самописную работающую демку в монохромного граф. режиме прямо в терминале иксов.

dikiy ★★☆☆☆
()
Ответ на: комментарий от monk

Думаю, _так_, SDL не умеет.

Да, именно это и имел ввиду. Пока для меня это открытый вопрос. Хотя уже не так и интересно, т.к. всё же ncurses(w). Есть даже перевод их основного how-to на русский, что очень радует.

Спасибо всем!

RiD
() автор топика
Ответ на: комментарий от RiD

Да, именно это и имел ввиду. Пока для меня это открытый вопрос. Хотя уже не так и интересно, т.к. всё же ncurses(w). Есть даже перевод их основного how-to на русский, что очень радует.

тебя ждет невероятное количество секса %) ncursesw - он такой.

dikiy ★★☆☆☆
()
Ответ на: комментарий от beastie

кстати, оказывается gnuplot умеет тоже такой вывод

set term xterm

надо сделать. И потом он может красивенькие графики прямо в окне терминала делать.

dikiy ★★☆☆☆
()

Плюсую S-Lang. API выглядит поприятней, чем в ncurses.

akk ★★★★★
()
Последнее исправление: akk (всего исправлений: 1)
Ответ на: комментарий от dikiy

Честно признаться, я уже забыл, но там где-то можно было выставить (коммадой) тип терминала. Помню, юзал их обоих когда-то из консоли. Maxima и octave, кстати тоже, но там всё просто — они использует gnuplot как backend.

beastie ★★★★★
()

По теме: в ncurses есть готовые menu и panel расширения, и если я не ошибаюсь поддержка мыши. Если нужно только консоль — то это то, что ты ищеш. Ещё можешь глянуть на моё баловство с Tek терминалами. Были когда-то такие настоящие векторные терминалы, поддерживается только xterm.

С SDL, svga, directfb — за…мучаешся, всё что они предоставляют — это способ рисования разноцветных точек. В этом плане даже Xlib их на несколько голов превосходит. Ещё советую глянуть на Xt/Xaw или Motif — все базовые виждеты в наличии и они не такие жирные как gtk или qt.

PS: [xterm,tek4014] Дело было вечером, делать было нечего...

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 4)

прикрутить гнуплот не советовали? Не изобретай велосипеды, они уже написаны до нас.

aiqu6Ait ★★★★
()
Ответ на: комментарий от anonymous

ЗЫ: поддержка tektronix есть в банальном xterm. С regis и sixtel все несколько сложнее.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.