Перейти к содержимому

Как рисовать в консоли c

  • автор:

Как рисовать линии в консоли C++? В Windows. Весь интернет перерыл, не нашел 🙁

Прозвучал вопрос: «В текстовом режиме? »
Я так и думал, что он будет, но я также думал, что народ догадается.. . Не все догадались.. .
Значит, поле в консоли 80xскоко-там. 80 изменить НЕВОЗМОЖНО. Экран консоли будет коородинатной плоскостью, каждая точка которой = 1 знакоместо. X — знакоместа по горизнтали, Y — знакоместа по вертикали. Мне надо рисовать горизонтальные и вертикальные линии. Вообще, цель работы — нарисовать квдраты внутри консоли и все.

#include . Я уже читал этот самый текст. И пробовал. Не пашет. В Visual Studio 2008 нет такой библиотеки. А мне надо функцию/класс, которую/ый можно будет впоследсвии вставить в программу или решение через стандартные библиотеки.

Лучший ответ

Для работы в графическом режиме файл graphics.h должен быть подключен с
помощью директивы #include препроцессора языка Cи ко всем модулям, ис-
пользующим графические подпрограммы
#include
Прежде чем использовать графические функции, необходимо переклю-
чить видеоадаптер в графический режим (по умолчанию он находится в тексто-
вом режиме) . Для инициализации графики предназначена функция initgraph().
Ее прототип –
void initgraph(int *driver, int *mode, char *path);
где int *driver – тип подключаемого драйвера, int *mode – режим работы под-
ключенного драйвера, char *path – местоположение драйвера.
Функция initgraph() считывает в память указанный драйвер, устанавлива-
ет видеорежим, соответствующий аргументу mode, и определяет маршрут к
директории, в которой находится файл *.bgi (драйвер) . Если маршрут не указан,
то предполагается, что этот файл расположен в текущей директории.
При использовании initgraph() можно указать или конкретный драйвер
(например, egavga.bgi), или задать автоматическое определение (детектирование)
типа видеоадаптера и выбора соответствующего драйвера уже во время выполнения программы (макрос DETECT). Это позволяет без изменения переносить
программы на компьютеры с другими видеоадаптерами. Например,
int grdrv=DETECT, grmod;
initgraph(&grdrv,&grmod,” ”);
В приведенном примере подразумевается, что файл драйвера (например,
egavga.bgi) расположен в текущей директории. Эта функция очищает экран
монитора и переводит его в графический режим
640 * 480 * 16 (разрешение монитора 640 * 480, 16 цветов) .
Чтобы выйти из графического режима и перейти обратно в текстовый ре-
жим, необходимо использовать функцию
void closegraph(void);
Функция closegraph() освобождает память, используемую графическими
функциями, и устанавливает текстовый режим, который был до вызова функ-
ции initgraph(), при этом происходит очистка экрана.

Источник: Методические указания к лабораторным работам
Остальные ответы

Что за линии? Если в текстовом режиме — смотри кодировку досовскую там куча всяких символов для рамок. Если графический режим в досе то, сначала инициализируй графику (bgi модуль)

unixforum.org

Зашел разговор о плагине для зарисовки блок схем под вим здесь drawIt . И я вспомнила как недавно помогала индусу отрисовывать на консоль что то подобное. Кстати, скрипт тогда я тоже назвала drawit. Хочу поделится и может кто заинтересуется. Индус понимал по английски лучше меня но вместе у нас получилась примерно как здесь Камеди-На американском радио. Ему я это в конечном счете тоже показала но так до конца и не поняла всю глубину логики которую влаживал в вопрос оппонент и вот то что я легенькое накидала.

#!/bin/bash frame() < echo "+-$-+" echo "| $2 |" | column -to' |--> | ' -s$'\r' echo "+-$-+" > IFS=$'\r'; frame "$" "$*"

Запускаем как-то так:

Можно переадресовать в файл. Вообщем. Можно прикинутся индусом и напридумывать сложных фирулей если кто скучает.
Да. Если нужны пробелы в словах блока необходимо заключать их в кавычки или экранировать сам пробел

Последний раз редактировалось olecya 02.09.2020 09:55, всего редактировалось 3 раза.
Спасибо сказали:
SerW Сообщения: 402 ОС: macOS& Fedora Workstation Latest Контактная информация:

Re: Рисуем блок схемы в консоли

Сообщение SerW » 22.12.2020 23:19

Сергей Ш. » DragonSerW.RU
Спасибо сказали:
gabix Сообщения: 352 ОС: openSUSE Leap 15.4

Re: Рисуем блок схемы в консоли

Сообщение gabix » 23.12.2020 09:58

Как для меня — вообще круть запредельная 🙂
Спасибо сказали:
devilr Сообщения: 3651 ОС: Mandriva => Gentoo (~amd64) Контактная информация:

Re: Рисуем блок схемы в консоли

Сообщение devilr » 23.12.2020 10:10

Кстати, всегда интересовало, а почему в таких поделках рисуют всякими плюсами/минусами, а не символами псевдографики? Они ведь в той же таблице находятся.

Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
olecya Сообщения: 894 ОС: debian, fedora (i3-wm)

Re: Рисуем блок схемы в консоли

Сообщение olecya » 23.12.2020 10:52

22.12.2020 23:19
Очень информативно, не боитесь, что могут расценить такое как спам?
23.12.2020 10:10
почему в таких поделках рисуют всякими плюсами/минусами
Так плюс это идеальный элемент сопряжения.
23.12.2020 10:10
Они ведь в той же таблице находятся.
А что за таблица? Есть продвинутые диграфы :dig
Чуть не написала глифы.
Бывает пользую когда нужно в латинице ударение поставить
Спасибо сказали:
devilr Сообщения: 3651 ОС: Mandriva => Gentoo (~amd64) Контактная информация:

Re: Рисуем блок схемы в консоли

Сообщение devilr » 23.12.2020 11:03

23.12.2020 10:52
А что за таблица?
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
olecya Сообщения: 894 ОС: debian, fedora (i3-wm)

Re: Рисуем блок схемы в консоли

Сообщение olecya » 23.12.2020 11:12

@devilr. Вижу в таблице первые три символа по которым уже есть соображения. Спасибо, отлучусь не на долго

Спасибо сказали:
devilr Сообщения: 3651 ОС: Mandriva => Gentoo (~amd64) Контактная информация:

Re: Рисуем блок схемы в консоли

Сообщение devilr » 23.12.2020 11:28

Просто, я уже много раз видел подобные «рисунки» в официальной документации всяких контор. И они все упорно не хотят применять псевдографику, хотя она совершенно прекрасно отображается хоть на древних терминалах, хоть на печати. Непонятно, почему.
P.S. «ненадолго» в этом контексте пишется слитно. Ваш граммар-наци.

Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
gabix Сообщения: 352 ОС: openSUSE Leap 15.4

Re: Рисуем блок схемы в консоли

Сообщение gabix » 23.12.2020 12:25

23.12.2020 11:28

Просто, я уже много раз видел подобные «рисунки» в официальной документации всяких контор.

Ваш граммар-наци.

Запятая в первом предложении лишняя. Да и нормальные кавычки типа «» нелишне поставить бы.

Дружеский привет от Komma Klan.

Спасибо сказали:
Bizdelnick Модератор Сообщения: 20642 Статус: nulla salus bello ОС: Debian GNU/Linux

Re: Рисуем блок схемы в консоли

Сообщение Bizdelnick » 23.12.2020 12:32

23.12.2020 10:10

Кстати, всегда интересовало, а почему в таких поделках рисуют всякими плюсами/минусами, а не символами псевдографики? Они ведь в той же таблице находятся.

В таблице ASCII их нет, всё остальное может быть недоступно в зависимости от локали.
Пишите правильно:

в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик

Спасибо сказали:
gabix Сообщения: 352 ОС: openSUSE Leap 15.4

Re: Рисуем блок схемы в консоли

Сообщение gabix » 23.12.2020 12:36

Так локали теперь всё больше на UTF-8 основываются, а значит псевдографика должна быть доступна почти всем.

Спасибо сказали:
devilr Сообщения: 3651 ОС: Mandriva => Gentoo (~amd64) Контактная информация:

Re: Рисуем блок схемы в консоли

Сообщение devilr » 23.12.2020 12:37

23.12.2020 12:32
В таблице ASCII их нет
А про какую именно таблицу вы говорите? Вроде, во второй половине, они всегда были. в Extended ASCII
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Bizdelnick Модератор Сообщения: 20642 Статус: nulla salus bello ОС: Debian GNU/Linux

Re: Рисуем блок схемы в консоли

Сообщение Bizdelnick » 23.12.2020 12:43

23.12.2020 12:37
А про какую именно таблицу вы говорите? Вроде, во второй половине, они всегда были. в Extended ASCII

В какой именно из Extended ASCII? Вторая половина в них всех разная.

export LC_ALL=ru_RU.KOI8-R
Удачи в выводе псевдографики. ☺

Пишите правильно:

в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик

Спасибо сказали:
devilr Сообщения: 3651 ОС: Mandriva => Gentoo (~amd64) Контактная информация:

Re: Рисуем блок схемы в консоли

Сообщение devilr » 23.12.2020 12:48

23.12.2020 12:43
Удачи в выводе псевдографики.

Если выбрать иврит, то наверняка не будет. Впрочем, может и так, что не у всех эти символы есть. я с этими таблицами больше на микроконтроллерах и китайских LCD — дисплеях встречался.

Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Bizdelnick Модератор Сообщения: 20642 Статус: nulla salus bello ОС: Debian GNU/Linux

Re: Рисуем блок схемы в консоли

Сообщение Bizdelnick » 23.12.2020 13:09

Хотя я ошибся, в KOI8-R как раз есть псевдографика. Но даже в KOI8-U она частично выброшена. А в Latin-1, например, её нет.

Пишите правильно:

в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик

Спасибо сказали:

Hephaestus Сообщения: 3729 Статус: Многоуважаемый джинн. ОС: Slackware64-14.1/14.2 Контактная информация:

Re: Рисуем блок схемы в консоли

Сообщение Hephaestus » 23.12.2020 14:09

23.12.2020 11:28

И они все упорно не хотят применять псевдографику, хотя она совершенно прекрасно отображается хоть на древних терминалах, хоть на печати.

Псевдографика в момент заменяется на «плюсы», «минусы», буквы «T» и «L», стоит только открыть исходник без без явного указания кодировки. Например, набросали рамочки в каком-нибудь встроенном редакторе NortonCommander — всё красиво.
А потом открыли, например, в vim. Всё — псевдографика вся разлетелась — заменилась на плюсы, минусы и пр.
Причем, заменяется автоматом, без всякого спроса.
За все редакторы не скажу, но с vim это было точно.
Чтобы этого не случилось, нужно либо псевдографику указывать кодами символов (что неудобно), либо файл не открывать в сторонних редакторах без указания кодировки.
Так эти люди, которые «не хотят использовать псевдографику» — они просто предпочитают plain text, что вполне оправдано.
Это я про исходники программ, которые рамочки выводят на экран.

А что касается документации — тем более: рисовать рамочки — это ж надо редактор, который такое умеет, плюс сам составитель документации должен это уметь. Это надо разбираться с режимом рисования, выбрать какой-то удобный способ быстрой вставки этих символов. короче, это целая история. А плюсы-минусы — вот они — на клавишах, никуда лезть не надо. И не случится с ними ничего — открывай файл, чем хочешь.

Как рисовать в консоли c

Доброго времени суток

Имею такое задание:
написать работающую в консоли программу, которая позволяет рисовать предметы быта.
Программа должна содержать несколько определений классов (позволяющих рисовать три элемента) с как минимум тремя атрибутами различных типов и методов (как минимум 2 метода на класс).

Примерно такие рисунки:

Изображения

Screenshot_1.jpg (21.5 Кб, 35 просмотров)
Screenshot_2.jpg (16.2 Кб, 31 просмотров)
Screenshot_3.jpg (8.8 Кб, 32 просмотров)
Programist_r
Посмотреть профиль
Найти ещё сообщения от Programist_r

рисовать в консоли

Чисто в учебных целях появилась необходимость рисовать в консоли графические объекты (круги , линии , квадраты и т.д.) c++.
Желательно реализовать самому с помощью ASCII знаков .
Заморачиваться на изучение ncurses и т.п. не входит в мои цели.
Какие средства представляет консоль для этого ? В поиске не нашёл ничего полезного.

kitov ★★★
20.11.05 22:04:36 MSK

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *