Как рисовать в консоли c
Перейти к содержимому

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

  • автор:

Рисование в консоли

Всем привет, такой вопрос, есть ли такой сайт который рисует или выдаёт готовые рисунки кода (Например мне нужно нарисовать) корабль, дом и т.д в консоли, но что бы самому этой вакханалией не заниматься))
Нужно для оформление Морского боя.

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

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

Рисование в консоли (не символами)
Есть ли у кого пример рисования в консоли не символами. Буду очень признателен 😐

Рисование в консоли (дома и дороги)
Подскажите. Есть абстрактный класс в котором я динамически выделяю память под двумерный массив.

Подключить ASCII кодировку (рисование рамок в консоли)
Добрый день! Пишу в VS’13. Проект: Консольное приложение Win32 Есть такая проблема. Хочется.

Заблокирован
Xpystum, вы хоть рисунок предоставьте
Нарушитель
8936 / 4800 / 1111
Регистрация: 12.03.2015
Сообщений: 22,645

ЦитатаСообщение от Xpystum Посмотреть сообщение

Нужно для оформление Морского боя.
Какой дебил тебя там заставляет делать «морской бой» в консоли? Сломай ему нос.
18413 / 9584 / 2341
Регистрация: 30.01.2014
Сообщений: 16,742

ЦитатаСообщение от Xpystum Посмотреть сообщение

есть ли такой сайт который рисует или выдаёт готовые рисунки
600 / 616 / 96
Регистрация: 29.05.2015
Сообщений: 3,812

ЦитатаСообщение от Xpystum Посмотреть сообщение

Например мне нужно нарисовать) корабль, дом и т.д в консоли
А нафига? Ты вводишь в консоли D4, а консоль тебе отвечает «Мимо».
18413 / 9584 / 2341
Регистрация: 30.01.2014
Сообщений: 16,742

ЦитатаСообщение от alexu_007 Посмотреть сообщение

Наверное хочет заставочку сделать.

ЦитатаСообщение от DrOffset Посмотреть сообщение

И насмешливую пиратскую морду при проигрыше ))

Меню пользователя @ SmallEvil

Заблокирован

ЦитатаСообщение от Verevkin Посмотреть сообщение

делать «морской бой» в консоли?
а чего? на то он и заказчик, можно еще псевдографику и мауса добавить
600 / 616 / 96
Регистрация: 29.05.2015
Сообщений: 3,812
Вариант 13х13:
Регистрация: 05.12.2018
Сообщений: 109

Это не заказчик, это с учебы)
Сделать морской бой — при том что темы из ООП нельзя использовать)
— получилось вот так.
Просто хочу красиво оформить) поэтому нужен рисунок в начале в меню)

Заблокирован

ЦитатаСообщение от Xpystum Посмотреть сообщение

получилось вот так
где/что получилось?
Регистрация: 05.12.2018
Сообщений: 109
Я затупил как вставить картину на форуме, вложил её.
Неэпический
17849 / 10617 / 2049
Регистрация: 27.09.2012
Сообщений: 26,686
Записей в блоге: 1
Заблокирован
WinAPI: LoadImage-загрузить файл
Регистрация: 05.12.2018
Сообщений: 109
Можете ли вы мне код скинуть?)
Регистрация: 01.04.2021
Сообщений: 39
@ zayats80888

Croessmah, вручную делал или скопипастил?

Меню пользователя @ zayats80888

zayats80888, копипаст конечно.

Меню пользователя Croessmah
Читать блог

@ zayats80888

Croessmah, а я уж хотел плюсануть за творчество 🙁

Меню пользователя @ zayats80888

2419 / 1039 / 371
Регистрация: 01.06.2021
Сообщений: 3,708
Xpystum, у тебя корабли размещаются только вертикально?
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Рисование ASCII кодами и русский текст в консоли
Всем добрый вечер. И вот такой вопрос есть. Сначала печатаю в консоли текст а под ним.

Рисование в консоли
#include "stdafx.h" #include <iostream> #include <conio.h> #include <Windows.h> using namespace.

Рисование в консоли
Я попытался рисовать в консоли прямую линию алгоритмом бренезхема и столкнулся с проблемой как.

Рисование в консоли
Я испытываю себя и пытаюсь выводить изображение в консоли на c# . Выводить круг, квадрат двигать.

Рисование в консоли на C#
Мне надо, чтобы в консоли сначала появилось: "Loading. " Console.WriteLine("Loading. ") Затем.

Рисование в консоли
Товарищи, такая беда — сестра попросила помочь ей задачки порешать/объяснить на шарпе, а я уже 3.

Рисование фракталов в консоли
Написал модуль для рисования в консоли простых примитивов. unit ConsoleGraph; uses Crt; type.

Рисование в консоли Visual Studio c++

Учился писать код в паскале. По ходу учебы перешел на с++ и Visual Studio. В борланд паскале был удобный канвас в котором можно было рисовать фигуры/графики функций etc. есть ли в visual studio аналог?

Отслеживать
задан 29 ноя 2017 в 11:31
Андрей Лобанович Андрей Лобанович
129 1 1 золотой знак 1 1 серебряный знак 7 7 бронзовых знаков
Псевдографикой?
29 ноя 2017 в 11:33
неа, нужно качать дополнительные библиотеки из вне
29 ноя 2017 в 11:38
@user272591, что за библиотеки?
29 ноя 2017 в 11:49
@VladimirGamalyan да, почему нет.
29 ноя 2017 в 11:50

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

В Windows на окне можно рисовать средствами GDI, консольное окно не исключение. Естественно такое решение будет непереносимым. Пример:

#include #include #include int main() < HWND hwnd = GetConsoleWindow(); HDC hdc = GetDC(hwnd); int x = 0; for (float i = 0; i < 3.14 * 10; i += 0.05) < SetPixel(hdc, x, 50 + 25 * cos(i), RGB(255, 255, 255)); x += 1; >ReleaseDC(hwnd, hdc); std::cin.ignore(); return 0; > 

введите сюда описание изображения

Кроме установки пикселя в наличии большое кол-во функций для рисования различных примитивов, с применением разных кистей (толщины, узора и т.п.).

Внимание! Работает сносно только в старых версиях Windows (Windows XP). Не использовать для современных систем, начиная с Vista.

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

Или чтобы рисовать в текстовом режиме: функции установки курсора и вывода на консоль (псевдографики из ASCII).

Сообщ. #7 , 09.12.06, 13:21

Senior Member
Рейтинг (т): 1
да не не псевдографика надо нарисовать как можно проще график синуса
Сообщ. #8 , 09.12.06, 13:50
Рейтинг (т): 26
Что-то вроде
const int N = 100;
const double PI = 3.141592;
const double T = 2; // число периодов
TCHAR title[MAX_PATH];
POINT pts[N];
int _tmain(int argc, _TCHAR* argv[])
GetConsoleTitle(title, MAX_PATH);
HWND hwnd = FindWindow(NULL, title);
HDC hdc = GetDC(hwnd);
GetClientRect(hwnd, &rc);
HPEN hpen = CreatePen(PS_SOLID, 1, RGB(0xFF, 0, 0));
SelectObject(hdc, hpen);
MoveToEx(hdc, 0, (rc.bottom — rc.top)/2, 0);
for(int i = 0; i < N ; ++i) pts[i].x = (rc.right - rc.left)*i/100; pts[i].y = (rc.bottom - rc.top)/2*(1.0 + sin(i*T*2.0*PI/N)); Polyline(hdc, pts, N); DeleteObject(hpen); ReleaseDC(hwnd, hdc); Сообщ. #9 , 09.12.06, 23:42 Unregistered LPBOY, работает только в линейке NT/2000/XP.
Сообщ. #10 , 10.12.06, 07:43
Рейтинг (т): 26
Сообщ. #11 , 10.12.06, 08:47
Unregistered
Не знаю. Вопрос к Мелкософтам. Пробовал — в 9х ничерта не рисует. В ХП — рисует.
Сообщ. #12 , 10.12.06, 14:15

пропагандист
Рейтинг (т): 188

В консоли можно рисовать график синуса, помечая символами ‘*’ точки на графике, отрисовывая с некоторым шагом.

Сообщ. #13 , 10.12.06, 15:03
Unregistered

Да многое можно. Но какое-то нехорошее чувство подсказывает, что великомудрый препод на самом деле просто хочет ДОСовскую прогу, и свято уверен, что это называется «консольной».

Сообщ. #14 , 02.06.07, 07:31
Unregistered

Доброе утро.
Немного другая проблема.

Есть dosпрога, написанная когда-то давно на Turbo C. Хочется запустить ее в Builder C++ 6.0.

float z,h,x1,y1,x2,y2,x3,y3,r,t=0;
int Driver = DETECT, Mode;
setbkcolor (BLACK);
printf («\n What way do you want to enter data?»);
P: printf («\n To use keyboard press 1»);
printf («\n To use entering from file press 2: «);
if (z==1) goto M;
else if (z==2)
0″);
J: x1=300+r*sin(t);
y1=200+r*cos(t);
x2=300+r*sin(t);
y2=200+r*cos(t);
x3=300+r*sin(t);
y3=200+r*cos(t);
line (x1,y1,x2,y2);
line (x1,y1,x3,y3);
line (x2,y2,x3,y3);

Скачал файлик graphics.h. Кинул в папку include.
Функция initgraph теперь выглядит так: initgraph(&Driver, &Mode, «»);
Пытаюсь скомпилить, появляется ошибка:
[C++ Fatal Error] graphics.h(10): F1003 Error directive: BGI graphics not supported under Windows
Как можно переделать прогу, чтобы она заработала. Рисовать нужно именно в консоли.
ОС WinXP SP2
компилятор C++ Builder 6.0

Сообщ. #15 , 02.06.07, 10:00
Unregistered

IGV, во-первых, незачем поднимать такие старые темы — для новых вопросов обычно создаются новые топики. Во-вторых, если используешь

Цитата IGV @ 02.06.07, 07:31
компилятор C++ Builder 6.0

то у тебя есть два варианта: либо рисовать непосредственно на канве формы (или одного из компонентов, специально для этого предназначенных — TPaintBox, TImage и т.д.), используя соответствующие методы и свойства (Pixels, LineTo, MoveTo, Arc и пр.), либо обратить внимание в сторону проекта Dos Graphics Migration Library.

0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:

  • Предыдущая тема
  • C/C++: Общие вопросы
  • Следующая тема
  • Форум на Исходниках.RU
  • Программирование
  • C/C++
  • C/C++: Общие вопросы

Графика в консоли

Существует ли возможность реализовать графику в консольных приложениях С++ с использованием стандартных библиотек. (без создния собственных библиотек, классов и прочее)?
Например, чтобы для изображения линии использовалось что-то вроде line(x1,x2,y1,y2)
P,S. среда Visual Studio или Code Blocks.

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

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

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

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

Графика в консоли
Изучаю с++ написал калькулятор для консоли, хочу переписать его в графическую версию для консоли.

CEO SOVAZ Corp.
386 / 232 / 51
Регистрация: 17.12.2011
Сообщений: 822
Записей в блоге: 1

В консоли вроде нельзя. В Qt SDK есть встроенная библиотека QPainter. Там и рисуй (только не в консоли)

Неэпический
17849 / 10617 / 2049
Регистрация: 27.09.2012
Сообщений: 26,686
Записей в блоге: 1

Лучший ответ

Сообщение было отмечено как решение

Решение

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#include #include 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; }

155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750

Спасибо, Croessmah.
Правда, сложновато будет новичкам это втолкнуть в теме «создание рисунков циклическим повторением графических примитивов». Но попробую.
Не хочется ради этой одной темки Паскаль или Бейсик задействовать.

Неэпический
17849 / 10617 / 2049
Регистрация: 27.09.2012
Сообщений: 26,686
Записей в блоге: 1

ЦитатаСообщение от LVV Посмотреть сообщение

«создание рисунков циклическим повторением графических примитивов»

покажите им квадрат или треугольник(ковер, салфетку) Серпинского.

Их можно достаточно ясно описать без использования программирования вовсе

155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750

ЦитатаСообщение от Croessmah Посмотреть сообщение

можно достаточно ясно описать без использования программирования вовсе

Ну, смысл как раз в программировании и заключается. Циклы + графика: интересней для изучения, чем на одних вычислениях циклы «оттачивать».

Эксперт С++

3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
LVV, я бы OpenGL юзал.
425 / 390 / 113
Регистрация: 21.09.2012
Сообщений: 913

Croessmah, А можно сделать так чтобы линия не пропадала когда консоль сворачиваешь? Чтобы перерисовка была

Эксперт С++

3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
v.a.l.i.d, В обработчике событий добавить в WM_PAINT перерисовку.
425 / 390 / 113
Регистрация: 21.09.2012
Сообщений: 913

ЦитатаСообщение от go Посмотреть сообщение

В обработчике событий добавить в WM_PAINT перерисовку.
А как это сделать?
1370 / 593 / 199
Регистрация: 02.08.2011
Сообщений: 2,882

ЦитатаСообщение от Croessmah Посмотреть сообщение

#include #include

Иногда нужно

1 2 3
#define _WIN32_WINNT 0x0500 #include #include

иначе может возникнуть ошибка error C3861: ‘GetConsoleWindow’: identifier not found

Неэпический
17849 / 10617 / 2049
Регистрация: 27.09.2012
Сообщений: 26,686
Записей в блоге: 1

ЦитатаСообщение от daslex Посмотреть сообщение

Иногда нужно

Специально для Вас: MSDN. Изменение WINVER и _WIN32_WINNT
И если уж на то пошло, то _WIN32_WINNT_WIN2K, а не 0x0500
А лучше пишите тогда под DOS

1370 / 593 / 199
Регистрация: 02.08.2011
Сообщений: 2,882

ЦитатаСообщение от Croessmah Посмотреть сообщение

Специально для Вас

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

Регистрация: 22.01.2013
Сообщений: 76

ЦитатаСообщение от Croessmah Посмотреть сообщение

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#include #include 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; }

кто может рассказать как оно работает, буду очень благодарен
Неэпический
17849 / 10617 / 2049
Регистрация: 27.09.2012
Сообщений: 26,686
Записей в блоге: 1
Если просто

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#include #include 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; }

Регистрация: 22.01.2013
Сообщений: 76

можно ли где почитать про это все

интересует:
1) какие параметры за что отвечают
2) можно ли менять толщину линии

Неэпический
17849 / 10617 / 2049
Регистрация: 27.09.2012
Сообщений: 26,686
Записей в блоге: 1

ЦитатаСообщение от skynet120 Посмотреть сообщение

можно ли где почитать про это все

MSDN, книги и статьи по WinAPI

Добавлено через 1 минуту

ЦитатаСообщение от skynet120 Посмотреть сообщение

какие параметры за что отвечают
Смотря параметры чего.

ЦитатаСообщение от skynet120 Посмотреть сообщение

как нарисовать горизонтальную линию
координаты поменять

ЦитатаСообщение от skynet120 Посмотреть сообщение

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

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