Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 120, средняя оценка - 4.88
LVV
57 / 57 / 4
Регистрация: 15.02.2010
Сообщений: 245
#1

Графика в консоли - C++

16.12.2012, 09:09. Просмотров 17676. Ответов 27
Метки нет (Все метки)

Существует ли возможность реализовать графику в консольных приложениях С++ с использованием стандартных библиотек. (без создния собственных библиотек, классов и прочее)?
Например, чтобы для изображения линии использовалось что-то вроде line(x1,x2,y1,y2)
P,S. среда Visual Studio или Code Blocks.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2012, 09:09     Графика в консоли
Посмотрите здесь:

Графика в консоли - C++
Здравствуйте, подскажите пожалуйста, можно ли в консоли с++ устроить графический интерфейс небольшой, например, расстоновка знаков в...

Графика в консоли - C++
Помогите разобраться с графикой в консоле. компилирую код в Dev C++ #include <iostream> #include <windows.h> int main(){ ...

Построение графика функции в консоли - C++
Привет всем Задание такое - построить график функции |y| = |sin(x)| + cos(x) Вся сложность заключается в том что график должен быть...

Постройка графика по точкам в консоли Dev C++ - C++
Задание стоит так - разработка класса "Построение интерполяционного полинома" с использованием разных видов конструкторов. Я написал...

часы в консоли - C++
Такой вопрос, допустим я пишу в консольке прогу, и хочу запилить часы в угол консоли, часы делаю через Sleep(1000), понимаю что это не есть...

Звук в консоли - C++
Возможно ли это? Если да то как это сделать?

Часы в консоли - C++
Здравствуйте! Такой вопрос - есть консольная программа , хочу сделать часы в угол консоли. Подскажите как правильно это сделать? ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
16.12.2012, 09:53     Графика в консоли #2
В консоли вроде нельзя. В Qt SDK есть встроенная библиотека QPainter. Там и рисуй (только не в консоли)
Croessmah
Модератор
Эксперт CЭксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
16.12.2012, 10:27     Графика в консоли #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <windows.h>
int main(){
    POINT op;
    HWND hWnd=GetConsoleWindow();
    HDC hDC=GetDC(hWnd);
    SelectObject(hDC,GetStockObject(WHITE_PEN));
 
    MoveToEx(hDC,50,50,&op);
    LineTo(hDC,100,200);
 
    ReleaseDC(hWnd,hDC);
    std::cin.get();
    return 0;
}
LVV
57 / 57 / 4
Регистрация: 15.02.2010
Сообщений: 245
16.12.2012, 11:11  [ТС]     Графика в консоли #4
Спасибо, Croessmah.
Правда, сложновато будет новичкам это втолкнуть в теме "создание рисунков циклическим повторением графических примитивов". Но попробую.
Не хочется ради этой одной темки Паскаль или Бейсик задействовать.
Croessmah
Модератор
Эксперт CЭксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
16.12.2012, 11:26     Графика в консоли #5
Цитата Сообщение от LVV Посмотреть сообщение
"создание рисунков циклическим повторением графических примитивов"
покажите им квадрат или треугольник(ковер, салфетку) Серпинского.

Их можно достаточно ясно описать без использования программирования вовсе
LVV
57 / 57 / 4
Регистрация: 15.02.2010
Сообщений: 245
16.12.2012, 11:32  [ТС]     Графика в консоли #6
Цитата Сообщение от Croessmah Посмотреть сообщение
можно достаточно ясно описать без использования программирования вовсе
Ну, смысл как раз в программировании и заключается. Циклы + графика: интересней для изучения, чем на одних вычислениях циклы "оттачивать"...
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
16.12.2012, 12:39     Графика в консоли #7
LVV, я бы OpenGL юзал.
v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
16.12.2012, 12:54     Графика в консоли #8
Croessmah, А можно сделать так чтобы линия не пропадала когда консоль сворачиваешь? Чтобы перерисовка была
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
16.12.2012, 13:13     Графика в консоли #9
v.a.l.i.d, В обработчике событий добавить в WM_PAINT перерисовку.
v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
16.12.2012, 14:23     Графика в консоли #10
Цитата Сообщение от go Посмотреть сообщение
В обработчике событий добавить в WM_PAINT перерисовку.
А как это сделать?
daslex
1271 / 516 / 106
Регистрация: 02.08.2011
Сообщений: 2,662
16.12.2012, 19:08     Графика в консоли #11
Цитата Сообщение от Croessmah Посмотреть сообщение
C++
1
2
#include <iostream>
#include <windows.h>
Иногда нужно
C++
1
2
3
#define _WIN32_WINNT 0x0500 
#include <iostream>
#include <windows.h>
иначе может возникнуть ошибка error C3861: 'GetConsoleWindow': identifier not found
Croessmah
Модератор
Эксперт CЭксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
16.12.2012, 20:10     Графика в консоли #12
Цитата Сообщение от daslex Посмотреть сообщение
Иногда нужно
Специально для Вас: MSDN. Изменение WINVER и _WIN32_WINNT
И если уж на то пошло, то _WIN32_WINNT_WIN2K, а не 0x0500
А лучше пишите тогда под DOS
daslex
1271 / 516 / 106
Регистрация: 02.08.2011
Сообщений: 2,662
16.12.2012, 20:42     Графика в консоли #13
Цитата Сообщение от Croessmah Посмотреть сообщение
Специально для Вас

Не по теме:

ну не только для меня. будут люди, которые с этим столкнутся еще.

skynet120
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 76
01.09.2013, 15:14     Графика в консоли #14
Цитата Сообщение от Croessmah Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <windows.h>
int main(){
    POINT op;
    HWND hWnd=GetConsoleWindow();
    HDC hDC=GetDC(hWnd);
    SelectObject(hDC,GetStockObject(WHITE_PEN));
 
    MoveToEx(hDC,50,50,&op);
    LineTo(hDC,100,200);
 
    ReleaseDC(hWnd,hDC);
    std::cin.get();
    return 0;
}
кто может рассказать как оно работает, буду очень благодарен
Croessmah
Модератор
Эксперт CЭксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
01.09.2013, 15:18     Графика в консоли #15
Если просто
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <windows.h>
int main(){
    POINT op;
    HWND hWnd=GetConsoleWindow(); //Получаем дескриптор окна консоли
    HDC hDC=GetDC(hWnd); //Получаем контекст устройства по полученному дескриптору
    SelectObject(hDC,GetStockObject(WHITE_PEN)); //Выбираем перо WHITE_PEN в контекст
 
    MoveToEx(hDC,50,50,&op); //Ставим текущую точку в координаты 50,50
    LineTo(hDC,100,200); //Рисуем линию из текущей точки в точку 100, 200
 
    ReleaseDC(hWnd,hDC); //"Освобождаем" контекст
    std::cin.get();
    return 0;
}
skynet120
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 76
01.09.2013, 15:27     Графика в консоли #16
можно ли где почитать про это все

интересует:
1) какие параметры за что отвечают
2) можно ли менять толщину линии
Croessmah
Модератор
Эксперт CЭксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
01.09.2013, 15:31     Графика в консоли #17
Цитата Сообщение от skynet120 Посмотреть сообщение
можно ли где почитать про это все
MSDN, книги и статьи по WinAPI

Добавлено через 1 минуту
Цитата Сообщение от skynet120 Посмотреть сообщение
какие параметры за что отвечают
Смотря параметры чего.
Цитата Сообщение от skynet120 Посмотреть сообщение
как нарисовать горизонтальную линию
координаты поменять
Цитата Сообщение от skynet120 Посмотреть сообщение
можно ли менять толщину линии
создать перо с нужной толщиной
ValeryS
Модератор
6542 / 5008 / 461
Регистрация: 14.02.2011
Сообщений: 16,655
01.09.2013, 15:32     Графика в консоли #18
Цитата Сообщение от LVV Посмотреть сообщение
Существует ли возможность реализовать графику в консольных приложениях С++
в общих случаях нельзя
консоль ведь не только под Виндос бывает
а для Винды тебе показал Croessmah,
но это немножко обманка
там консоль воспринимается не как консоль а как окно консоли
о чем говорят строчки
Цитата Сообщение от Croessmah Посмотреть сообщение
#include <windows.h>
........
* * HWND hWnd=GetConsoleWindow(); //Получаем дескриптор окна консоли
* * HDC hDC=GetDC(hWnd); //Получаем контекст устройства по полученному дескриптору
и если развернуть на весь экран ctrl+Enter то не во всех виндах работать будет
skynet120
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 76
01.09.2013, 16:11     Графика в консоли #19
Цитата Сообщение от Croessmah Посмотреть сообщение
создать перо с нужной толщиной
можете подсказать как это сделать

Цитата Сообщение от Croessmah Посмотреть сообщение
MSDN, книги и статьи по WinAPI
можете кинуть ссылку на страницу MSDN где описываться тот код что Вы привели
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.09.2013, 18:27     Графика в консоли
Еще ссылки по теме:

Кодировка в консоли(C) - C++
Здравия Я к вам с очередной проблемой:)Читал сейчас тему русские шрифты в консоли и задался вопросом. Вот вы говорите, говорите про C++,...

Мусор в консоли - C++
Ищу подстроку в строке и забиваю её в массив, в итоге в последнем cout выводится не то, что нужно: вместо &quot;ло в бою, очень ло&quot; выводится...

Кириллица в консоли - C++
Пишу простенькую программу: #include &lt;iostream&gt; using namespace std; int main() { cout &lt;&lt; &quot;Это моя первая C++ программа.&quot;; ...

Атрибуты консоли в C++ - C++
С++ Win32 Console Application. Компилятор - Microsoft Visual Studio C++ 2005 Как при компилировании задать параметр для консоли,...

Меню в консоли - C++
По условию нужно сделать что-то вроде меню в консоли. Чисто теоретически порядок знаю, но с реализацией проблемы((( в while массив из 5...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
dmitry94
559 / 189 / 35
Регистрация: 25.05.2012
Сообщений: 796
01.09.2013, 18:27     Графика в консоли #20
Цитата Сообщение от go Посмотреть сообщение
v.a.l.i.d, В обработчике событий добавить в WM_PAINT перерисовку.
Для консоли этого сделать не получится.
Yandex
Объявления
01.09.2013, 18:27     Графика в консоли
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru