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

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

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

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

16.12.2012, 09:09. Просмотров 17662. Ответов 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++
Здравствуйте! Такой вопрос - есть консольная программа , хочу сделать часы в угол консоли. Подскажите как правильно это сделать? ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
01.09.2013, 18:28     Графика в консоли #21
Цитата Сообщение от skynet120 Посмотреть сообщение
можете кинуть ссылку на страницу MSDN где описываться тот код что Вы привели
GetConsoleWindow function
GetDC function
GetStockObject function
SelectObject function
MoveToEx function
LineTo function
ReleaseDC function

Цитата Сообщение от skynet120 Посмотреть сообщение
можете подсказать как это сделать
CreatePen function
DeleteObject function
dmitry94
559 / 189 / 35
Регистрация: 25.05.2012
Сообщений: 796
01.09.2013, 19:12     Графика в консоли #22
Цитата Сообщение от dmitry94 Посмотреть сообщение
Для консоли этого сделать не получится.
Заинтересовал этот вопрос. WM_PAINT обработать можно, правда придется извратится с созданием доп. окна и уже в нем обрабатывать сообщения. Вот что получилось:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <windows.h>
 
LRESULT CALLBACK CallbackProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
HDC hDC;
HWND hConsoleWnd;
 
int main()
{
    HWND hMainWnd=NULL;
    WNDCLASS WndClass = {0};
    wchar_t szClassName[]=L"WC_TEST";
 
    WndClass.style         = CS_VREDRAW | CS_HREDRAW;
    WndClass.lpfnWndProc   = CallbackProc;
    WndClass.cbClsExtra    = 0;
    WndClass.cbWndExtra    = 0;
    WndClass.hInstance     = NULL;
    WndClass.hIcon         = LoadIcon( NULL, IDI_APPLICATION);
    WndClass.hCursor       = LoadCursor(NULL, IDC_ARROW);
    WndClass.hbrBackground = CreateSolidBrush(RGB(0,0,0));
    WndClass.lpszClassName = szClassName;
 
 
    RegisterClass(&WndClass);
    
    hConsoleWnd=GetConsoleWindow();
 
    hMainWnd = CreateWindowW(szClassName,L"Test",WS_CHILD|WS_CLIPCHILDREN|WS_VISIBLE,0, 0, 0, 0, hConsoleWnd, NULL, NULL, NULL);
 
    hDC=GetDC(hConsoleWnd);
    SelectObject(hDC,GetStockObject(WHITE_PEN));
 
    MSG msg = {0};
    
    while (GetMessage(&msg,hMainWnd,0,0) != 0)
    {        
        TranslateMessage( &msg );   
         DispatchMessage( &msg );
         Sleep(5);
    }
 
    ReleaseDC(hConsoleWnd,hDC);
    return 0;
}
 
 
LRESULT CALLBACK CallbackProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
 
    switch (message)
    {
 
        case WM_DESTROY:
            PostQuitMessage(0);
            break;
        case WM_PAINT:
            MoveToEx(hDC,50,50,NULL);
            LineTo(hDC,100,200);
            break;
        case WM_SIZE:
            RECT r;
            GetWindowRect(hConsoleWnd,&r);
            SetWindowPos(hWnd,NULL,0, 0, r.right-r.left, r.bottom-r.top, 0);
            SetFocus(hConsoleWnd);
            break;
        default:
            return DefWindowProc(hWnd, message, wParam, lParam);
    }
 
    return 0;
}
vigord
0 / 0 / 0
Регистрация: 18.11.2015
Сообщений: 16
03.01.2016, 08:57     Графика в консоли #23
Как очистить окно консоли от графика?
vigord
0 / 0 / 0
Регистрация: 18.11.2015
Сообщений: 16
04.01.2016, 10:12     Графика в консоли #24
Решил следующим образом:

C++
1
2
3
4
5
6
7
void erasegraph() {
    
    HWND hWnd = GetConsoleWindow(); 
    HDC hDC = GetDC(hWnd); 
    const RECT recta = {0, 320, 1000, 1000}; //Инизиализируем структуру типа const RECT координатами закрашиваемой области
    FillRect(hDC, &recta, (HBRUSH)GetStockObject(BLACK_BRUSH));//Черная кисть для закрашивания
}
scherbakovss201
16 / 1 / 0
Регистрация: 22.12.2015
Сообщений: 719
01.05.2016, 03:56     Графика в консоли #25
Каким кодом нарисовать оси координат желтым цветом и подписать их ,если есть массив Х и У.Фон консоли синий.

Добавлено через 18 минут
чем заменить для консоли функцию outtextxy из тарого хедера graphics,h ?
ValeryS
Модератор
6542 / 5008 / 461
Регистрация: 14.02.2011
Сообщений: 16,653
01.05.2016, 06:44     Графика в консоли #26
Цитата Сообщение от vigord Посмотреть сообщение
Решил следующим образом:
при таких затратах, не проще ли уже оконное приложение создать?
и избавится от всех этих трудностей вызванных скрещением ужа с ежом?
scherbakovss201
16 / 1 / 0
Регистрация: 22.12.2015
Сообщений: 719
01.05.2016, 14:10     Графика в консоли #27
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include "stdafx.h"
// Line.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <windows.h>
#include <iostream>
 
using namespace std;
 
//0 — черный
//1 — синий
//2 — зеленый
//3 — голубой
//4 — красный
//5 — лиловый
//6 — желтый
//7 — белый
//8 — серый
//9 — свело - синий
//A — светло - зеленый
//B — светло - голубой
//С — светло - красный
//E — светло - желтый
//F — ярко - белый
 
 
 
int main()
{
    
    system("color 1F");  // Установка синего  фона-1 и белого цвета шрифта F.
    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, 635, 320); //Рисуем линию из текущей точки в точку 100, 200
    Ellipse(hDC, 12, 23, 130, 120); //вот это элипс, он же окружность
    ReleaseDC(hWnd, hDC); //"Освобождаем" контекст
    system("pause");
    return 0;
}
Мне просто нужно что бы добавить сюда оси координат х и у,и черчечение графика по точка массива х и массива у
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.07.2016, 23:32     Графика в консоли
Еще ссылки по теме:

Кодировка в консоли(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...


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

Или воспользуйтесь поиском по форуму:
Wenebojo
0 / 0 / 0
Регистрация: 16.03.2016
Сообщений: 1
21.07.2016, 23:32     Графика в консоли #28
Фантастика!!!! СПС!
Yandex
Объявления
21.07.2016, 23:32     Графика в консоли
Ответ Создать тему
Опции темы

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