Рисуем в консоли с


Незарегистрированный

Регистрация Справка Календарь
Ответ

 

 

Старый 03.12.2011, 17:10   #1

impersonalis

Зануда с интернетом

 
Аватар для impersonalis  

Регистрация: 03.09.2005

Сообщений: 14,014
Написано 6,795 полезных сообщений
(для 20,913 пользователей)

Консоль и рисование

Хотелось бы скрасить практику у студентов, дав им более зрелищные задания (простые игры, визуализация распределений, набивший оскомину остров и т.п.). Единственная проблема - уровня подготовки для создания приложений с оконным интерфейсом под Windows они пока не располагают. Кто что может посоветовать (библиотеки) для рисования "под DOS", т.е. в консоли эмулятора. Ну или напишите "ты тупой делать надо /указание что надо делать/".
Спасибо.
PS.: если это имеет значение, то функционал должен быть реализован в рамках не проприетарного ПО (основная IDE - C::B).

__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz

А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?

(Offline) Нажмите, если это сообщение было для вас полезным Ответить с цитированием impersonalis Эти 2 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:

ANIK123 (10.12.2011), Harter (05.12.2011)

 

Старый 03.12.2011, 17:36   #2

ABTOMAT

Ференька

 
Аватар для ABTOMAT  

Регистрация: 25.01.2007

Адрес: улица Пушкина дом Колотушкина

Сообщений: 10,321
Написано 5,164 полезных сообщений
(для 14,920 пользователей)

Ответ: консоли Консоль и рисование

Нас парили тупыми и скучными заданиями.
Пусть теперь и они попарятся.

__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов
Различие
Клюква


— в стадии разработки
— в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена


(Offline) Нажмите, если это сообщение было для вас полезным Ответить с цитированием ABTOMAT Эти 2 пользователя(ей) сказали Спасибо ABTOMAT за это полезное сообщение:

impersonalis (03.12.2011), Reks888 (03.12.2011)

 

Старый 03.12.2011, 17:47   #3

ffinder

Дэвелопер

 
Аватар для ffinder  

Регистрация: 10.09.2007

Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)

Ответ: Консоль и рисование

гугли escape последовательности.
можно менять цвет чернил, фона, переводить курсор по экрану.

(Offline) Нажмите, если это сообщение было для вас полезным Ответить с цитированием ffinder Сообщение было полезно следующим пользователям:

impersonalis (03.12.2011)

 

Старый 03.12.2011, 20:32   #4

impersonalis

Зануда с интернетом

 
Аватар для impersonalis  

Регистрация: 03.09.2005

Сообщений: 14,014
Написано 6,795 полезных сообщений
(для 20,913 пользователей)

Ответ: Консоль и рисование

Сообщение от ffinder Посмотреть сообщение

гугли escape последовательности.
можно менять цвет чернил, фона, переводить курсор по экрану.

Опа. До сих пор сталкивался с весьма скромным списком оных (порядка 10-ти, примерно это) и там не было ничего про смену цвета.
Upd: веротяно имелись в виду такие последовательности:
http://symmetrica.net/archive/tips2.htm
printf("3[30mЧерный 3[0m\n"); Занятно (я просто недолюбливаю эту Си-функцию) - не знал про это. Но хотелось бы ещё такие возможности как: точки, линии, прямоугольники, круги.
Спасибо. __________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz

А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?

(Offline) Нажмите, если это сообщение было для вас полезным Ответить с цитированием impersonalis

 

Старый 03.12.2011, 20:41   #5

ffinder

Дэвелопер

 
Аватар для ffinder  

Регистрация: 10.09.2007

Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)

Ответ: Консоль и рисование

Сообщение от impersonalis Посмотреть сообщение

Занятно (я просто недолюбливаю эту Си-функцию) - не знал про это. Но хотелось бы ещё такие возможности как: точки, линии, прямоугольники, круги.

занятно, что к С эта функция не имеет ни малейшего отношения вообще.
консоль это эмулятор терминалов VT-100 и VT-220, которые использовались при работе с мейнфреймами и получали по сети байты, которые должны были рисоваться на экране.
а круги и линии - кури алгоритмы Брезенхэма для отрезков и окружностей. (Offline) Нажмите, если это сообщение было для вас полезным Ответить с цитированием ffinder

 

Старый 03.12.2011, 20:47   #6

impersonalis

Зануда с интернетом

 
Аватар для impersonalis  

Регистрация: 03.09.2005

Сообщений: 14,014
Написано 6,795 полезных сообщений
(для 20,913 пользователей)

Ответ: Консоль и рисование

Сообщение от ffinder Посмотреть сообщение

занятно, что к С эта функция не имеет ни малейшего отношения вообще.
консоль это эмулятор терминалов VT-100 и VT-220, которые использовались при работе с мейнфреймами и получали по сети байты, которые должны были рисоваться на экране.
а круги и линии - кури алгоритмы Брезенхэма для отрезков и окружностей.

Не совсем понял замечание про Си. Поясни, пожалуйста.
Указанные алгоритмы я и сам могу эти воссоздать - дело в том, что визуализировать результат их работы, не имея функции рисуем в консоли с закрашивания пикселя, проблематично. __________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz

А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?

(Offline) Нажмите, если это сообщение было для вас полезным Ответить с цитированием impersonalis

 

Старый 03.12.2011, 20:53   #7

impersonalis

Зануда с интернетом

 
Аватар для impersonalis  

Регистрация: 03.09.2005

Сообщений: 14,014
Написано 6,795 полезных сообщений
(для 20,913 пользователей)

Ответ: Консоль и рисование

Вероятно недоразумение вызвано сокращённой формулировкой мысли. Нетриальная версия:
Не знал этих возможностей системной функции принтф, заголовочный файл которой имеется в том числе в наборе стандартных библиотек С\С++ IDE, т.к. обычно использую ввод\вывод через потоки, более принятый в С++ (в то в время, как использование принтфа - в Си). Отменяет ли минимизация тела враппера факт его наличия и отмену преобразование объекта из "системная функция" в "функция языка" - не мне судить. Вероятно, я ошибаюсь, т.к., раз вы на это указываете, то, скорее всего, располагаете некоторой неизвестной мне информацией. __________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz

А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?

(Offline) Нажмите, если это сообщение было для вас полезным Ответить с цитированием impersonalis

 

Старый 03.12.2011, 21:06   #8

pozitiffcat

Мастер

 
Аватар для pozitiffcat  

Регистрация: 09.05.2010

Адрес: Самара

Сообщений: 1,073
Написано 247 полезных сообщений
(для 514 пользователей)

Ответ: Консоль и рисование

QBasic?
либо ncurses под windows c++
ЗЫ. большинство студентов (90 %) не свяжут свою жизнь с программированием - так что Нас парили тупыми и скучными заданиями.
Пусть теперь и они попарятся.

__________________
CrossAd - все Ваши записи в одном аккаунте

(Offline) Нажмите, если это сообщение было для вас полезным Ответить с цитированием pozitiffcat Сообщение было полезно следующим пользователям:

impersonalis (03.12.2011)

 

Старый 03.12.2011, 21:29   #9

FireOwl

Бывалый

 
Аватар для FireOwl  

Регистрация: 16.09.2009

Адрес: Sun system

Сообщений: 831
Написано 442 полезных сообщений
(для 1,836 пользователей)

Ответ: Консоль и рисование

Так может потому и не связали 90%, что их
парили тупыми и скучными заданиями.
По теме. В Turbo C была встроенная библиотека graphics. Она позволяла рисовать простую графику. Пример:
http://www.softwareandfinance.com/Tu...P/Scatter.html

__________________
N"Gasta! Kvata! Kvakis!
Ahkstas so novajxletero (oix jhemile) so Ranetauw.

(Offline) Нажмите, если это сообщение было для вас полезным Ответить с цитированием FireOwl Эти 2 пользователя(ей) сказали Спасибо FireOwl за это полезное сообщение:

impersonalis (03.12.2011), pozitiffcat (03.12.2011)

 

Старый 03.12.2011, 21:36   #10

ffinder

Дэвелопер

 
Аватар для ffinder  

Регистрация: 10.09.2007

Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)

Ответ: Консоль и рисование

Сообщение от impersonalis Посмотреть сообщение

Не совсем понял замечание про Си. Поясни, пожалуйста.

поясняю: байты, которые ты пишешь в поток вывода функцией printf это БИНАРНЫЙ СЕТЕВОЙ ПРОТОКОЛ вот этой железки: http://ru.wikipedia.org/wiki/VT220
а окно консоли - это эмулятор вышепреведенной железки.
т.е. prinft тут к escape последовательностям вообще не причем.
Сообщение от impersonalis Посмотреть сообщение

Но хотелось бы ещё такие возможности как: точки, линии, прямоугольники, круги.

ну и очевидно, что в ТЕКСТОВОЙ КОНСОЛИ рисовать пиксели невозможно в приниципе. (Offline) Нажмите, если это сообщение было для вас полезным Ответить с цитированием ffinder Сообщение было полезно следующим пользователям:

impersonalis (03.12.2011)

 

Старый 05.12.2011, 14:12   #11

pax

Unity/C# кодер

 
Аватар для pax  

Регистрация: 03.10.2005

Адрес: Россия, Рязань

Сообщений: 7,496
Написано 2,953 полезных сообщений
(для 5,217 пользователей)

Ответ: Консоль и рисование

В консоли можно рисовать еще вот так
http://ascgendotnet.jmsoftware.co.uk/
)

(Offline) Нажмите, если это сообщение было для вас полезным Ответить с цитированием

 

Старый 05.12.2011, 22:09   #12

Harter

Бывалый

 
Аватар для Harter  

Регистрация: 03.11.2008

Адрес: Украина, Днепропетровск

Сообщений: 871
Написано 554 полезных сообщений
(для 2,520 пользователей)

Ответ: Консоль и рисование

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

(Offline) Нажмите, если это сообщение было для вас полезным Ответить с цитированием Harter Сообщение было полезно следующим пользователям:

impersonalis (09.12.2011)

 

Старый 09.12.2011, 20:47   #13

impersonalis

Зануда с интернетом

 
Аватар для impersonalis  

Регистрация: 03.09.2005

Сообщений: 14,014
Написано 6,795 полезных сообщений
(для 20,913 пользователей)

Ответ: Консоль и рисование

Пересмотрел кучу (большую!) разнообразных библиотек для вывода графики в консоль (с её переключением в графический режим - спасибо за указание на принципиальную ошибку, ffinder).
Часть вообще не запустилась. Настройка и сборка проекта с другими - сами по себе могут тянуть на курсовую работу для неподготовленного студента.
Поэтому, возвращаемся к псевдографике.
Сперва рассматривал вариант, более близкий к предложенному ffinder-ом. А именно: управление непосредственно терминалом (при помощи функции system).
Подробнее:
ать
ыть
Потом решил всё же использовать более завёрнутые функции (на некотором уровне "те же яйца", но на уровне цпп-кода более привычно, имхо)
опаньки
В К::Б вроде всё пашет. Но, не расходимся: обладателей студии попрошу потестить семпл, когда руки дойдут.
Ещё раз спасибо всем принимавшим участие в обсуждении!

__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz

А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?

(Offline) Нажмите, если это сообщение было для вас полезным Ответить с цитированием impersonalis Сообщение было полезно следующим пользователям:

Harter (09.12.2011)

 

Старый 09.12.2011, 21:24   #14

impersonalis

Зануда с интернетом

 
Аватар для impersonalis  

Регистрация: 03.09.2005

Сообщений: 14,014
Написано 6,795 полезных сообщений
(для 20,913 пользователей)

Ответ: Консоль и рисование

Ух ты - руки дошли
#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; } Просьба потестить (укажите свою иде, используемый компилятор, ОС).
Код может потребовать доработки под конкретную конфигурацию. Картинка может отличаться от приведённой, т.к. параметры используемого в качестве ГПСЧ ЛКГ у разных компиляторов разные.
Спасибо!
У меня уже готовы два задания, для которых такой функционал вывода достаточен. Миниатюры Нажмите на изображение для увеличения Название: cons_kvasi_grap.jpg Просмотров: 631 Размер: 33.6 Кб ID: 15679   __________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz

А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?

(Offline) Нажмите, если это сообщение было для вас полезным Ответить с цитированием impersonalis Эти 2 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:

BlackDragon (10.12.2011), Harter (09.12.2011)

 

Старый 09.12.2011, 22:25   #15

Harter

Бывалый

 
Аватар для Harter  

Регистрация: 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. Миниатюры Нажмите на изображение для увеличения Название: Visual C++ 6.JPG Просмотров: 775 Размер: 129.7 Кб ID: 15680  Нажмите на изображение для увеличения Название: Visual Studio 2005.JPG Просмотров: 285 Размер: 136.2 Кб ID: 15681  Нажмите на изображение для увеличения Название: Visual Studio 2008.JPG Просмотров: 359 Размер: 138.0 Кб ID: 15682   (Offline) Нажмите, если это сообщение было для вас полезным Ответить с цитированием Harter Сообщение было полезно следующим пользователям:

impersonalis (10.12.2011)

Ответ

« Предыдущая тема | Следующая тема »


Ваши права в разделе

Вы не можете создавать темы

Вы не можете отвечать на сообщения

Вы не можете прикреплять файлы

Вы не можете редактировать сообщения

BB коды Вкл.

Смайлы Вкл.

[IMG] код Вкл.

HTML код Выкл.


Часовой пояс GMT +1, время: 14:53.



vBulletin® Version 3.6.5.
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Перевод: zCarot



Источник: http://forum.boolean.name/showthread.php?t=15960



Рекомендуем посмотреть ещё:


Закрыть ... [X]

Графика в консоли - Общие вопросы C/C - Форум программистов Спицы вязание в нижнем новгороде

Рисуем в консоли с Рисуем в консоли с Рисуем в консоли с Рисуем в консоли с Рисуем в консоли с Рисуем в консоли с Рисуем в консоли с

ШОКИРУЮЩИЕ НОВОСТИ