Помогите с консольной графикой
В любом случае, <conio.h>
Да что угодно, лишь бы были картинки, где разные области окрашены в разный цвет.
Если тебе не очень срочно, могу привезти книжку по графике в Си. Но это не раньше понедельника.
А как она называлась, может в инете есть.
Да нет, он bmp хочет сгенерировать, не нужна ему графика в С.
На BC++ 3.1 работало.
#include<conio.h>
#include<stdio.h>
void main{
textbackground(BLACK);
textcolor(LIGHTBLUE);
cprintf("LIGHT Blue █\n\r");
getch;
}
по ходу, автору этого не надо было
Так и называлась: Построение графических приложений в языке Си - или что-то подобное. Советская книга поздних сишных времен, где-то конца 80х.
То есть? БМП тоже можно генерить, юзая эту книгу.
Ну там слова особо не нужны. Просто раскрасить квадрат. Т.е. экран поделен на сетку 800x800. Каждую клетку в зависимости от опр. числа нужно покрасить в опр. цвет. Будут в итоге нечто вроде концентрических кругов разного цвета. И желательно, чтобы этот результат сохранился где-нибудь в виду bmp-шника или чего-нибудь другого. Вот и все.
Могу рассказать как записать в tga файл.
На можешь поизучать, что я в детстве ваял Тебе нужно читать в основном Graph/Bitmap.cpp/MBitmap::Write, но может и еще чего пригодится.
Раскажи. А что это за формат.
Для BC++ 3.1 используетcя некий графический драйвер egavga.bgi
подключается библиотека <graphics.h>
используются функции
line(x1,y1,x2,y2)
lineto(x1,y1)
moveto(x1,y1)
putpixel(x1,y1,x2,y2)
initgraph
closegraph
Но режима 800х800 там не было и в помине.
Ну вот у меня установлен С++Builder 6
Это да. Типичные режимы: 320х200, 640х200, 640х480..
В принципе, можно написать свой. Это не очень сложно, у меня даже есть такая самописная библиотека. Юзала ассемблер.
Подожди. Я не понял, что тебе надо: вывод на экран или вывод в файл?
В файл.
Блин, мне вот такую же надо. И все. ВСЁ. Только цвета будут для каждой точки разные.
Тогда на вот тебе:
Спасибо.
Осталось понять как она работает.
Ну как, добавляешь файлы Bitmap.C && Bitmap.h к своему проекту, а пример работы - в main.C Что там не ясно? Создаешь объект. Пераметры конструктора - ширина и высота. Для того чтобы установить точку можно например воспользоваться .setPixel( x, y, red, gree, blue ) x,y - координаты, r, g, b - цветовые компонеты. они типа float, от 0 до 1.
А если мне допустим надо восемь цветов.
И в чем проблемы?
Ну, дискретизируй, это же несложно.
Ты можешь, если не трудно написать четыре строчки:
1) Создание файла рисунка
2) Установление границ рисунка (800x800)
3) Нарисовать пиксел в точке (x,y) допустим красного цвета
4) Закрыть файл
Вот и все.
P.S. Можно ли направить вывод этих пикселей в файл типа
ofstream outfile ("picture.tga")
outfile<< something;
b.setPixel( x, y, 1, 0, 0 );
b.writeToFile( "res.tga" );
Ну это нужно подключать эти два файла. А вот сами исходные команды. Чтобы короче.
Короче не получится.
Просто Builder ругается и выдает до хера ошибок.
2) Ошибки где?
Вроде как разобрался. А вот если мне другие увета надо, то как их вставить. Например. Оранжевый. Поиграть с коэффициентом и вместо 1 посылать другие?
почитай в гугле про rgb
Ну е-мое. Ты же можешь варьировать все цветовые составляющие. Какие проблемы-то? r = 1, g = 0.5, b = 0.
Все понял спасибо.
Правда временами эта прога вызвает переполнение стека.
Это не вина моего класса. Ты точно уверен что не пытаешься писать за пределы границ?
Да нет, вроде. Плохо, что Этот массив много памяти требует. А без него никак нельзя?
Наверное никак, если только сразу в файл не писать. Ну или можно не использовать флоаты, хотя мне так удобнее. В общем я отвечаю за этот класс. Если у тебя нет переходов за границы, то и в этом классе не будет глюков. Ищи ошибку у себя.
1. Нарисовать точку (сразу в файл)
2. Открыть, закрыть файл.
И все.
Меня сейчас ломает. Все завтра. Ты пока отладь алгоритм, чтобы он хоть так работал...
Тебе известен какой там использовался компилятор?другие режимы через другие .bgi файлы.
Для BC++ 3.1 используетcя некий графический драйвер egavga.bgi
подключается библиотека <graphics.h>
используются функции
line(x1,y1,x2,y2)
lineto(x1,y1)
moveto(x1,y1)
putpixel(x1,y1,x2,y2)
initgraph
closegraph
Но режима 800х800 там не было и в помине.
Дело в том, что во всей проге используются потоковые вводы и ввыводы, в том числе и в файл. И это конфликтует со ст. вводом-выводом.
Оставить комментарий
AndrewAAndrew
Нужно нарисовать нечто вроде окрашеных зон. Прога консольная, менять её сложно и опасно. Подскажите где можно найти описание консольной графики для тупых в С/С++. Хотелось бы чтобы изображение сохранялось в каком-нибудь, пусть самом дерьмовом формате, в файл.Ну типа операций draw (x,y, colour). Что нибудь простое и для тупых.
Нескольок сумубрно, но только от того, что тра***л шеф, а до защиты всего 20 дней. Спасите