|
03.12.2011, 21:10
|
#1
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Консоль и рисование
Хотелось бы скрасить практику у студентов, дав им более зрелищные задания (простые игры, визуализация распределений, набивший оскомину остров и т.п.). Единственная проблема - уровня подготовки для создания приложений с оконным интерфейсом под Windows они пока не располагают. Кто что может посоветовать (библиотеки) для рисования "под DOS", т.е. в консоли эмулятора. Ну или напишите "ты тупой делать надо /указание что надо делать/".
Спасибо.
PS.: если это имеет значение, то функционал должен быть реализован в рамках не проприетарного ПО (основная IDE - C::B).
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
|
|
03.12.2011, 21:36
|
#2
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Консоль и рисование
Нас парили тупыми и скучными заданиями.
Пусть теперь и они попарятся.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо ABTOMAT за это полезное сообщение:
|
|
03.12.2011, 21:47
|
#3
|
Дэвелопер
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений (для 1,460 пользователей)
|
Ответ: Консоль и рисование
гугли escape последовательности.
можно менять цвет чернил, фона, переводить курсор по экрану.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
04.12.2011, 00:32
|
#4
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Консоль и рисование
Сообщение от ffinder
гугли escape последовательности.
можно менять цвет чернил, фона, переводить курсор по экрану.
|
Опа. До сих пор сталкивался с весьма скромным списком оных (порядка 10-ти, примерно это) и там не было ничего про смену цвета.
Upd: веротяно имелись в виду такие последовательности:
http://symmetrica.net/archive/tips2.htm
printf("\033[30mЧерный \033[0m\n");
Занятно (я просто недолюбливаю эту Си-функцию) - не знал про это. Но хотелось бы ещё такие возможности как: точки, линии, прямоугольники, круги.
Спасибо.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
04.12.2011, 00:41
|
#5
|
Дэвелопер
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений (для 1,460 пользователей)
|
Ответ: Консоль и рисование
Сообщение от impersonalis
Занятно (я просто недолюбливаю эту Си-функцию) - не знал про это. Но хотелось бы ещё такие возможности как: точки, линии, прямоугольники, круги.
|
занятно, что к С эта функция не имеет ни малейшего отношения вообще.
консоль это эмулятор терминалов VT-100 и VT-220, которые использовались при работе с мейнфреймами и получали по сети байты, которые должны были рисоваться на экране.
а круги и линии - кури алгоритмы Брезенхэма для отрезков и окружностей.
|
(Offline)
|
|
04.12.2011, 00:47
|
#6
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Консоль и рисование
Сообщение от ffinder
занятно, что к С эта функция не имеет ни малейшего отношения вообще.
консоль это эмулятор терминалов VT-100 и VT-220, которые использовались при работе с мейнфреймами и получали по сети байты, которые должны были рисоваться на экране.
а круги и линии - кури алгоритмы Брезенхэма для отрезков и окружностей.
|
Не совсем понял замечание про Си. Поясни, пожалуйста.
Указанные алгоритмы я и сам могу эти воссоздать - дело в том, что визуализировать результат их работы, не имея функции закрашивания пикселя, проблематично.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
04.12.2011, 00:53
|
#7
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Консоль и рисование
Вероятно недоразумение вызвано сокращённой формулировкой мысли. Нетриальная версия:
Не знал этих возможностей системной функции принтф, заголовочный файл которой имеется в том числе в наборе стандартных библиотек С\С++ IDE, т.к. обычно использую ввод\вывод через потоки, более принятый в С++ (в то в время, как использование принтфа - в Си). Отменяет ли минимизация тела враппера факт его наличия и отмену преобразование объекта из "системная функция" в "функция языка" - не мне судить. Вероятно, я ошибаюсь, т.к., раз вы на это указываете, то, скорее всего, располагаете некоторой неизвестной мне информацией.
|
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
04.12.2011, 01:06
|
#8
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: Консоль и рисование
QBasic ?
либо ncurses под windows c++
ЗЫ. большинство студентов (90 %) не свяжут свою жизнь с программированием - так что
Нас парили тупыми и скучными заданиями.
Пусть теперь и они попарятся.
|
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
04.12.2011, 01:29
|
#9
|
Бывалый
Регистрация: 16.09.2009
Адрес: Sun system
Сообщений: 831
Написано 442 полезных сообщений (для 1,836 пользователей)
|
Ответ: Консоль и рисование
Так может потому и не связали 90%, что их
парили тупыми и скучными заданиями
|
.
По теме. В Turbo C была встроенная библиотека graphics. Она позволяла рисовать простую графику. Пример:
http://www.softwareandfinance.com/Tu...P/Scatter.html
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо FireOwl за это полезное сообщение:
|
|
04.12.2011, 01:36
|
#10
|
Дэвелопер
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений (для 1,460 пользователей)
|
Ответ: Консоль и рисование
Сообщение от impersonalis
Не совсем понял замечание про Си. Поясни, пожалуйста.
|
поясняю: байты, которые ты пишешь в поток вывода функцией printf это БИНАРНЫЙ СЕТЕВОЙ ПРОТОКОЛ вот этой железки: http://ru.wikipedia.org/wiki/VT220
а окно консоли - это эмулятор вышепреведенной железки.
т.е. prinft тут к escape последовательностям вообще не причем.
Сообщение от impersonalis
Но хотелось бы ещё такие возможности как: точки, линии, прямоугольники, круги.
|
ну и очевидно, что в ТЕКСТОВОЙ КОНСОЛИ рисовать пиксели невозможно в приниципе.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
05.12.2011, 18:12
|
#11
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Консоль и рисование
В консоли можно рисовать еще вот так
http://ascgendotnet.jmsoftware.co.uk/
)
|
(Offline)
|
|
06.12.2011, 02:09
|
#12
|
Бывалый
Регистрация: 03.11.2008
Адрес: Украина, Днепропетровск
Сообщений: 871
Написано 554 полезных сообщений (для 2,520 пользователей)
|
Ответ: Консоль и рисование
impersonalis,
Извини, если сильно не по теме.
Я в консоле рисовал графики функций и не скажу, что это сильно запарно, даже, наоборот, занимательно. А на днях знакомый сделал пятнашки. Это к тому, что есть довольно интересные консольные задачи без применения графики. Возможно, ты посмотришь в эту сторону.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
10.12.2011, 00:47
|
#13
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Консоль и рисование
Пересмотрел кучу (большую!) разнообразных библиотек для вывода графики в консоль (с её переключением в графический режим - спасибо за указание на принципиальную ошибку, ffinder).
Часть вообще не запустилась. Настройка и сборка проекта с другими - сами по себе могут тянуть на курсовую работу для неподготовленного студента.
Поэтому, возвращаемся к псевдографике.
Сперва рассматривал вариант, более близкий к предложенному ffinder-ом. А именно: управление непосредственно терминалом (при помощи функции system).
Подробнее:
ать
ыть
Потом решил всё же использовать более завёрнутые функции (на некотором уровне "те же яйца", но на уровне цпп-кода более привычно, имхо)
опаньки
В К::Б вроде всё пашет. Но, не расходимся: обладателей студии попрошу потестить семпл, когда руки дойдут.
Ещё раз спасибо всем принимавшим участие в обсуждении!
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
10.12.2011, 01:24
|
#14
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Консоль и рисование
Ух ты - руки дошли
#include <conio.h>
#include <iostream>
#include <windows.h>
using namespace std;
int main(){
SetConsoleTitle("boolean");
WORD ATTR;
COORD POS;
HANDLE CH=GetStdHandle(STD_OUTPUT_HANDLE);
for(int items=0;items<100;items++){
ATTR=FOREGROUND_BLUE*(rand()%2) | FOREGROUND_GREEN | FOREGROUND_INTENSITY*(rand()%2) | BACKGROUND_BLUE*(rand()%2);
POS.X=rand()%70;
POS.Y=rand()%20;
SetConsoleTextAttribute(CH,ATTR);
SetConsoleCursorPosition(CH,POS);
cout<<char(1+rand()%6)<<endl;
}
POS.X=0;
POS.Y=21;
SetConsoleCursorPosition(CH,POS);
getch();
return 0;
}
Просьба потестить (укажите свою иде, используемый компилятор, ОС).
Код может потребовать доработки под конкретную конфигурацию. Картинка может отличаться от приведённой, т.к. параметры используемого в качестве ГПСЧ ЛКГ у разных компиляторов разные.
Спасибо!
У меня уже готовы два задания, для которых такой функционал вывода достаточен.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
|
|
10.12.2011, 02:25
|
#15
|
Бывалый
Регистрация: 03.11.2008
Адрес: Украина, Днепропетровск
Сообщений: 871
Написано 554 полезных сообщений (для 2,520 пользователей)
|
Ответ: Консоль и рисование
На втором и третем скрине
1 warning C4996: 'getch': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _getch. See online help for details.
|
Заменил на _getch - всё ок.
ОС: XP SP 3.
Visual C++ 6, Visual Studio 2005, Visual Studio 2008.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:24.
|