Рисование в консоли 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++ нарисовать простой график или рисунок?
Ну действительно, мне интересно, а можно как-то обойтись без WinAPI и прочих сложностей? Я хотел показать брату школьнику простой рисунок (построение графика y=x), но мало того, что нормальных исходников не нашел, которые будут работать у меня, так еще и это оказывается не тривиальная задача!
На первом курсе, мы писали в 25 строк кода на Ассемблере (правда под DOS) и выводили флаг России/Франции .. без проблем, а почему же на С++ нет такой простой возможности (только не под DOS)?
Вставлял найденный код в интернете под Dev++, не компилировалась программа, другой похожий код вставлял в Qt creator, тоже не работало (отсутствие graphics.h), поставил visual studio 2013 интересно, под него найду рабочий код?
Подскажите есть ли документация с хорошей инструкцией, где в процедурном стиле можно нарисовать графики на C++ (просто я только его основы и знаю, другие учить языки пока нет времени, да и стоит ли..) в том же Visual Studio 2013?
- Вопрос задан более трёх лет назад
- 31554 просмотра
3 комментария
Оценить 3 комментария
Как рисовать символами различные фигуры
Здравствуйте такой вопрос: в общем в учебнике задания рисовать звёздочками (*) букву О, стрелочку, прямоугольник, ромбик и потом там ещё символами различные фигуры. До этого не чего не говорилось в учебнике как это делать, пробовал через printf, но там получается только две линии и всё.. как можно переносить в конец строки и от туда допустим вести в низ звёздочки? например, чтоб сделать прямоугольник или ещё какую либо форму ромбик например? помогите разобраться пожалуйста?
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Как рисовать фрактальные изображения в двумерном массиве символами звездочек используя рекурсию?
День добрый! Подскажите, пожалуйста, общий подход, как рисовать фракталы в двумерном массиве с.
Как можно «рисовать» различные линии и фигуры, в том числе и трёхмерные в C++?
Я хотел бы узнать, есть ли какая-нибудь литература по рисованию в C++ трёхмерных объектов (да и.
Как рисовать фигуры
Нужно на C# нарисовать заданную фигуру. а я с рисованием вообще не дружу. Помогите пожалуйста.
Как рисовать фигуры?
Не так давно начал работать на си. Помогите пожалуйста. с помощью графики нарисовать такие картинки:
Native x86
5525 / 3280 / 938
Регистрация: 13.02.2013
Сообщений: 10,451
Простейший способ:
1 2 3 4 5 6
printf(" * * \n"); printf(" * * \n"); printf(" * *\n"); printf(" * *\n"); printf(" * * \n"); printf(" * * \n");
Но красивее будет ставить курсор в нужную позицию при помощи gotoxy() (находится в conio.h) и выводить в эту позицию символ. И так по одному символу, как по одному пикселу рисовать все что угодно.
Регистрация: 06.09.2014
Сообщений: 25
quwy, Ясно спасибо
Guardian of Asgaard
377 / 319 / 197
Регистрация: 11.11.2013
Сообщений: 1,046
Главное разработать скилл
1 2 3 4 5 6 7 8 9 10 11
#include int main() { printf(" # ## \n"); printf("### # # ### ### ### # ### ### # # ###\n"); printf("# ### # # ## # ### # # # # # ###\n"); printf("### # ### ### # # ### # ### # #\n"); printf(" ### ##\n"); return 0; }
Регистрация: 12.12.2019
Сообщений: 29
РЕбят а как то же самое сделать но притом эти фигуры рядом располодить в одной строке. Допустим надо поместить 5 фигур. При этом нельзя чтоб все три находились только в этих printf. Например, я написал программу и там алфавит и цифры, нарисовал все через принтф и когда в поле ввода я ввожу любое слово у меня выдает символами но буквы строятся по вертикали а мне надо чтоб они выводились в горизонтальном положении. Заранее спасибо!
Регистрация: 31.05.2016
Сообщений: 67
Завести матрицу из нулей и единичек для каждого символа.
Регистрация: 12.12.2019
Сообщений: 29
Спасибо, за помощь! Но я новичек и не совсем понял. Не могли бы вы поподробнее описать,пожалуйста
Добавлено через 1 час 9 минут
Boleon, а можно ли все это сделать без \n ?
2307 / 1133 / 702
Регистрация: 25.04.2016
Сообщений: 3,229
Booneeck, например так:
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 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
#include #define nSCRw 80 /* ширина, количество символов в 1 строке экрана */ #define nSCRh 22 /* высота, количесво строк экрана */ char screen[nSCRh][nSCRw]; // внутренний экран const char * a[5] = { // буквы алфавита " ******", "* *", "*******", "* *", "* *" }; const char * b[5] = { "****** ", "* *", "*******", "* *", "*******" }; const char * c[5] = { "*******", "* ", "* ", "* ", "*******" }; const char * place[5] = { // пустой символ " ", " ", " ", " ", " " }; void clear (void); void refresh (void); void putChar (char ch, int y, int x); void printString (char *str, int y, int x); int main (void) { char str[] = "abccba"; clear(); // очищаем внутренний экран printString(str, 4, 10); // выводим строку на внутренний экран printString(str, 13, 20); // и еще одну refresh(); // выводим внутренний экран на экран return 0; } // ------------------------------------------------------------ void clear (void) { int x, y; for (y=0; ynSCRh; y++) for (x=0; xnSCRw; x++) screen[y][x] = 0; } // ------------------------------------------------------------ void refresh (void) { int x, y; for (y=0; ynSCRh; y++) { for (x=0; xnSCRw; x++) if (screen[y][x] > 0) printf("*"); else printf(" "); printf("\n"); } } // ------------------------------------------------------------ void putChar (char ch, int y, int x) // ^^ if (sym[i][k] == '*') screen[y+i][x+k] = 1; else .. = 0; // ------------------------------------------------------------ void printString (char *str, int y, int x) { int i; for (i=0; str[i]; i++) putChar(str[i], y, x+i*10); // 10 - расстояние от начала буквы } // до начала следующей буквы // ------------------------------------------------------------
2456 / 1061 / 481
Регистрация: 17.11.2018
Сообщений: 2,740
Сообщение от stake-k26
например так:
stake-k26, не удержался. Поюзал немножко твой код.
Кликните здесь для просмотра всего текста
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 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
#include #include #define nSCRw 80 /* ширина, количество символов в 1 строке экрана */ #define nSCRh 22 /* высота, количество строк экрана */ char screen[nSCRh][nSCRw]; // внутренний экран const char *a[5] = { // буквы алфавита " ******", "* *", "*******", "* *", "* *" }; const char *b[5] = { "****** ", "* *", "*******", "* *", "*******" }; const char *c[5] = { "*******", "* ", "* ", "* ", "*******" }; const char *place[5] = { // пустой символ " ", " ", " ", " ", " " }; void clear( void ); void refresh( void ); void putChar( char ch, int y, int x ); void printString( char *str, int y, int x ); void gotoxy( int x, int y ); // ------------------------------------------------------------ int main() { int i; char str[] = "abcabc"; for( i = 70; i > 3; i-- ) { gotoxy( i, 1 ); clear(); // очищаем внутренний экран printString( str, 1, i ); // выводим строку на внутренний экран refresh(); // выводим внутренний экран на экран Sleep( 10 ); } gotoxy( 0, 8 ); } // ------------------------------------------------------------ void clear( void ) { int x, y; for( y = 0; y nSCRh; y++ ) for( x = 0; x nSCRw; x++ ) screen[y][x] = 0; } // ------------------------------------------------------------ void refresh( void ) { int x, y; for( y = 0; y nSCRh; y++ ) { for( x = 0; x nSCRw; x++ ) if( screen[y][x] > 0 ) printf( "*" ); else printf( " " ); printf( "\n" ); } } // ------------------------------------------------------------ void putChar( char ch, int y, int x ) if( x 0 // ^^ if (sym[i][k] == '*') screen[y+i][x+k] = 1; else .. = 0; // ------------------------------------------------------------ void printString( char *str, int y, int x ) { int i; for( i = 0; str[i]; i++ ) putChar( str[i], y, x + i * 10 ); // 10 - расстояние от начала буквы } // до начала следующей буквы // ------------------------------------------------------------ void gotoxy( int x, int y ) { COORD coord; coord.X = x; coord.Y = y; SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), coord ); }
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Как рисовать несложные фигуры
например вот такую балку !! и спасибо за ранее!
Как рисовать на форме простые фигуры?
Есть похожие темы, но ни в одной нет ясного ответа и, хотя бы одного примитивного примера. Как с.
Как рисовать трехмерные фигуры на плоскости?
Здарвствуйте, столкнулся с такой проблемой: не могу корретктно нарисовать каую либо трехмерную.
Как рисовать элементарные геометрические фигуры?
Всем привет. Вопрос конечно гулповатый, но все же. Нужно про помощи WinApi прорисовывать.
Как с помощью программы на C++ изобразить различные графики и фигуры?
Собсно,как с помощью программы на с++ изобразить различные графики и фигуры?
Написать программу, которая будет рисовать различные графики.
Надо написать программу, которая будет рисовать различные графики. Надо создать кнопки и им.
Или воспользуйтесь поиском по форуму:
Как рисовать в консоли на C
Рисование в консоли на языке C является интересным и увлекательным занятием, которое позволяет воплотить свои творческие идеи в виде графики прямо на экране компьютера. Данная инструкция даст вам пошаговое руководство по созданию различных фигур и паттернов с использованием языка программирования C.
Для начала рисования вам понадобится знание основ языка C и его стандартной библиотеки. В C для работы с консолью используется заголовочный файл stdio.h, который позволяет осуществлять ввод и вывод данных на консоль. Также вам понадобится знание о работе с символами ASCII-кода, так как в консоли графика создается с использованием символов и специальных управляющих последовательностей.
Первым шагом для создания графики в консоли является инициализация экрана и установка нужных настроек. Вам понадобится отключить режим буферизации консоли с помощью функции setbuf() и установить размер окна консоли с помощью функции system(). После этого вы сможете начать рисование с помощью функций вывода символов и управляющих последовательностей.
system(«mode con:cols=80 lines=25»);
// код рисования графики
Основной способ рисования в консоли на языке C заключается в использовании функций вывода символов, таких как putchar() и printf(), которые позволяют выводить на экран отдельные символы и строки соответственно. Для создания графических фигур вы можете использовать символы ASCII-кода, такие как звездочка (*), точка (.), решетка (#) и другие.
Также вы можете использовать специальные управляющие последовательности, чтобы задать цвет символов и их позицию на экране. Например, с помощью последовательности \033[ вы можете задать цвет символов, а с помощью последовательности \033[X;YH можно установить позицию курсора на экране.
Рисование в консоли на языке C — это уникальный способ выразить свою творческую натуру и развить навыки программирования. Следуя этой пошаговой инструкции, вы можете создать самые разнообразные фигуры и паттерны, которые будут отображаться прямо на экране вашего компьютера.
Подготовка среды для рисования в консоли
Перед тем как начать рисовать в консоли с помощью языка C, вам понадобится определенные инструменты и настройки.
- Установите компилятор языка C: Для начала вам потребуется установить компилятор языка C, такой как GCC или Clang, на вашей операционной системе. Это позволит вам компилировать и запускать программы на C.
- Выберите текстовый редактор или интегрированную среду разработки (IDE): Для написания кода на языке C вам понадобится текстовый редактор или IDE. Вы можете выбрать любой редактор, который вам нравится, например, Atom, Sublime Text, Visual Studio Code или Notepad++. Если вы предпочитаете использовать IDE, то можете рассмотреть такие варианты, как Code::Blocks, Dev-C++ или Eclipse.
- Настройте проект: Создайте новый проект или файл в выбранном вами текстовом редакторе или IDE. Здесь вы будете писать свой код рисования в консоли. Если вы используете IDE, возможно, вам потребуется создать проект и добавить файл с исходным кодом.
- Подключите заголовочный файл: Для работы с функциями рисования в консоли, вам необходимо подключить соответствующий заголовочный файл. Например, если вы используете Windows, вы можете подключить заголовочный файл . Это позволит использовать функции, такие как SetConsoleCursorPosition() или SetConsoleTextAttribute().
- Напишите код рисования: Ваш код рисования будет состоять из последовательности команд и функций, которые определяют форму, цвет и размер отображаемого объекта. Например, вы можете использовать функцию printf() для вывода символов на экран, а функции из заголовочного файла для управления позицией курсора или цветом текста. Экспериментируйте, чтобы найти лучший способ рисования в консоли.
- Сохраните и запустите программу: После того, как вы написали свой код рисования, сохраните его и скомпилируйте с помощью выбранного вами компилятора. Затем запустите скомпилированную программу и убедитесь, что рисунок отображается в консоли правильно.
Теперь у вас есть основа для рисования в консоли на языке C. Вы можете исследовать различные функции и возможности, чтобы создать интересные и креативные проекты рисования. Удачи!
Установка среды программирования
Перед тем, как приступить к рисованию в консоли на языке C, необходимо установить среду программирования. Для этого следуйте инструкциям ниже.
- Скачайте и установите компилятор C. Для программирования на языке C вам понадобится компилятор, который будет преобразовывать ваш код на C в машинный код, понятный компьютеру. Можно использовать такие компиляторы, как GCC, MinGW, Clang. Скачайте и установите компилятор, который вам больше всего подходит.
- Выберите интегрированную среду разработки (IDE) или текстовый редактор. Чтобы удобно писать и отлаживать код на языке C, можно использовать интегрированную среду разработки (IDE) или текстовый редактор. Некоторые популярные IDE для разработки на C: Code::Blocks, Dev-C++, Visual Studio Code, Eclipse. Если вы предпочитаете работать в текстовом редакторе, то можете использовать Sublime Text, Atom, Notepad++.
- Настройте окружение. После установки компилятора и выбора IDE или текстового редактора, настройте окружение для работы с языком C. Убедитесь, что компилятор добавлен в переменную среды PATH, чтобы вы могли вызывать его из командной строки. Также убедитесь, что выбрана правильная кодировка (UTF-8) для вашего проекта, чтобы избежать проблем с отображением русских символов.
После выполнения всех этих шагов вы будете готовы к созданию своих первых программ на языке C и рисованию в консоли. Удачи!
Создание нового проекта
Чтобы начать рисовать в консоли на языке C, необходимо создать новый проект. В этом разделе мы рассмотрим несколько простых шагов для создания нового проекта.
- Откройте среду разработки (IDE). Для программирования на языке С можно использовать различные среды разработки, такие как Code::Blocks, Dev-C++, Visual Studio и другие. Откройте предпочитаемую вами среду разработки.
- Создайте новый проект. В среде разработки выберите опцию «Создать новый проект» или аналогичную команду. Обычно это можно сделать из меню «Файл».
- Выберите тип проекта. В окне создания нового проекта выберите тип «Консольное приложение» или «Консольный проект». В зависимости от среды разработки, процесс создания нового проекта может отличаться, но обычно есть опция для создания консольного проекта.
- Назовите проект. Введите имя для вашего нового проекта. Придумайте уникальное имя, которое будет отражать его содержание. Например, «Рисование в консоли» или «Консольный графический редактор».
- Настройте параметры проекта. В некоторых средах разработки есть дополнительные настройки для проекта. Настройте параметры проекта по своему усмотрению или оставьте значения по умолчанию, если вы не уверены, какие параметры выбрать.
- Создайте файлы проекта. После создания проекта, среда разработки автоматически создаст несколько файлов проекта, таких как файл с исходным кодом (обычно с расширением .c) и файлы для компиляции и сборки проекта.
Поздравляю, вы успешно создали новый проект для рисования в консоли на языке C! Теперь вы можете приступить к написанию кода и созданию своего первого проекта.
Изучение основ графики в консоли
Графическое программирование в консоли на языке C — это увлекательный способ создания разнообразных визуальных эффектов и простых изображений непосредственно в командной строке.
Для начала работы с графикой в консоли нужно узнать основные понятия и принципы:
- Координаты: графические объекты в консоли размещаются в координатной системе, где каждая точка имеет свои X и Y координаты.
- Пиксели: основные элементы изображения, которые образуют графические объекты. Пиксель — это точка, которую можно закрасить определенным цветом.
- Растровое изображение: изображение, состоящее из пикселей, каждый из которых имеет свой цвет и позицию.
- Цвета: в консоли можно использовать ограниченную палитру цветов. Каждому цвету соответствует определенное численное значение.
При создании графических объектов в консоли часто используются следующие основные функции:
- setpixel(): функция, которая ставит пиксель определенного цвета в указанные координаты.
- drawline(): функция, которая рисует линию между двумя заданными точками.
- drawrectangle(): функция, которая рисует прямоугольник с заданными координатами и размерами.
- drawcircle(): функция, которая рисует окружность с заданным радиусом и координатами центра.
- fill(): функция, которая закрашивает область заданного цвета.
При изучении основ графики в консоли важно потренироваться на различных примерах, чтобы лучше понять, как работают координаты, пиксели и функции для создания объектов. Также рекомендуется изучить дополнительные функции и возможности работы с цветами и текстом.
Графическое программирование в консоли на языке C — это увлекательный и творческий процесс, который позволяет создавать уникальные визуальные эффекты и изображения прямо в командной строке. Освоив основы графики, вы сможете создавать свои собственные проекты и экспериментировать с различными эффектами и стилями.
Работа с символами
При рисовании в консоли на языке C нам необходимо уметь работать с символами. Символы используются для создания различных графических элементов, от простых геометрических фигур до сложных изображений.
На языке C символы представляются с помощью типа данных char. Этот тип данных может хранить один символ из таблицы символов ASCII или другой кодировки.
Таблица символов ASCII
ASCII – это таблица символов, которая представляет собой стандартную кодировку для представления текста на компьютере. В таблице ASCII символы представлены числами от 0 до 127, каждому числу соответствует определенный символ.
Таблица символов ASCII
Вывод символов в консоль
Для вывода символов в консоль на языке C используется функция printf(). Эта функция принимает строку формата, которая содержит специальные символы для вывода различных значений.
Чтобы вывести символ на экран, нужно использовать специальный символ формата %c, а после него указать символ, который нужно вывести.
Например, чтобы вывести символ ‘A’ на экран, нужно написать следующий код:
Ввод символов с клавиатуры
Для ввода символов с клавиатуры на языке C используется функция scanf(). Эта функция принимает строку формата, которая содержит специальные символы для чтения различных типов данных.
Чтобы прочитать символ с клавиатуры, нужно использовать специальный символ формата %c, а после него указать переменную, в которую будет записан символ.
Например, чтобы прочитать символ с клавиатуры и вывести его на экран, нужно написать следующий код:
Теперь, когда мы знаем, как работать с символами на языке C, мы можем использовать их для рисования различных фигур и изображений в консоли. Приступайте к изучению следующих разделов, чтобы научиться создавать свои первые рисунки!
Вопрос-ответ
Как начать рисовать в консоли на языке C?
Чтобы начать рисовать в консоли на языке C, вам понадобится использовать библиотеку, такую как ncurses. Эта библиотека обеспечивает функции для работы с различными элементами интерфейса в терминале, включая рисование графики. Вам нужно будет установить библиотеку и добавить соответствующие заголовочные файлы в вашу программу. Затем вы сможете использовать функции из библиотеки для рисования на экране.
Как нарисовать простую линию в консоли на языке C?
Чтобы нарисовать простую линию в консоли на языке C, вам понадобится использовать функцию для перемещения курсора и функцию для вывода символа. Вы можете использовать функцию ncurses move() для перемещения курсора в нужное место на экране и функцию ncurses addch() для вывода символа в этой позиции. Например, чтобы нарисовать горизонтальную линию, вы можете использовать цикл для вывода нескольких символов ‘-‘ в одной строке.
Как нарисовать квадрат в консоли на языке C?
Чтобы нарисовать квадрат в консоли на языке C, вы можете использовать циклы для вывода нужного количества символов в каждой строке. Например, вы можете использовать вложенные циклы для вывода символа ‘#’ в каждой позиции квадрата. Вы можете определить размер квадрата и перебирать строки и столбцы, выводя символ ‘#’ в каждой позиции.
Как нарисовать круг в консоли на языке C?
Нарисовать круг в консоли на языке C можно с использованием алгоритма Брезенхэма. Этот алгоритм позволяет определить пиксели, которые принадлежат кругу, основываясь на его радиусе и центре. Вы можете использовать циклы для определения пикселей и их вывода на экране. Существуют готовые реализации алгоритма Брезенхэма для рисования кругов, которые вы можете найти в Интернете и использовать в своей программе.