Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ под Linux

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
k1-801
4 / 4 / 2
Регистрация: 07.01.2013
Сообщений: 135
#1

Консольная графика в Ubuntu - C++ Linux

19.06.2013, 17:49. Просмотров 1858. Ответов 13
Метки нет (Все метки)

Итак, у меня снова возникла проблема. Нужно реализовать консольную графику. Прежде всего должно работать на G++ поскольку дома Ubuntu стоит. Желательно чтобы не использовалось никаких внешних библиотек (я их и ставить-то не умею Но не только в этом дело). Кроссплатформенности здесь, похоже, добиться не получится, поэтому придется делать таким образом: задавать в одной строчке какая операционка стоит (GNU/Win) и там по ходу дела... Или можно все сделать общими возможностями? Мне говорили писать в видеопамять, но я с этим не разобрался. Повторюсь, графика консольная, ничего особенного не требуется - точки (да, точки это главное), кружочки, полосочки и тому подобное. Есть оно?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2013, 17:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Консольная графика в Ubuntu (C++ Linux):

Консольная графика - C++
Доброго времени суток!!! Как под DOS рисовать примитивные обьекты линии, квадраты, круги? Для Turbo C++, Но если возможно то для C++...

Консольная игра, мигание экрана - C++ Linux
Я написал консольную игру танчики. как поле я использую 2х мерный массив. Я каждый раз перед выводом очищаю весь экран ну и конечно же все...

консольная графика - Visual C++
задумал сделать карточную игру. надо чтобы информация оппонента выводилась с правой стороны окна. Мне придется все время курсор уводить...

консольная графика - C++
Помогите, пожалуйста, с графикой. Не выводит на экран рисунок. # include <graphics.h> # include <conio.h> # include...

Консольная графика - C++
Наверное будет звучать грубо, но как мне нарисовать в консоли квадратик, выбрав его цвет и размер?

Консольная графика С++ - C++
Сейчас пишу для экзамена покер на одного игрока. И столкнулся проблемой, при рисовании карт, они у меня рисуются одна под одной и по этому...

13
MrGluck
Модератор
Эксперт CЭксперт С++
7496 / 4611 / 694
Регистрация: 29.11.2010
Сообщений: 12,620
19.06.2013, 17:51 #2
ANSI-драйвер. Еще с досовских времен остался. В винде его выпилили хз зачем, а в никсах он существует и по сей день. И цвет фона/курсора менять и курсор в нужное место устанавливать и многое, многое другое. Как windows.h, только проще.
0
k1-801
4 / 4 / 2
Регистрация: 07.01.2013
Сообщений: 135
19.06.2013, 17:52  [ТС] #3
Цитата Сообщение от MrGluck Посмотреть сообщение
ANSI-драйвер. Еще с досовских времен остался. В винде его выпилили хз зачем, а в никсах он существует и по сей день. И цвет фона/курсора менять и курсор в нужное место устанавливать и многое, многое другое. Как windows.h, только проще.
А с графикой (круги-линии-точки) работает? (И как оно вообще работает?)
0
MrGluck
Модератор
Эксперт CЭксперт С++
7496 / 4611 / 694
Регистрация: 29.11.2010
Сообщений: 12,620
19.06.2013, 17:59 #4
Например так:
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
 
int main()
{
    int a;
    std::cout << "Отрезок равен : ";
    std::cin >> a;
    std::cout << "\033[1A\033[KОтрезок равен : " << a << " см\n";
}
Добавлено через 49 секунд
Цитата Сообщение от k1-801 Посмотреть сообщение
круги-линии-точки
такого нет ( в нем)
0
k1-801
4 / 4 / 2
Регистрация: 07.01.2013
Сообщений: 135
19.06.2013, 18:07  [ТС] #5
Цитата Сообщение от MrGluck Посмотреть сообщение
Например так:
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
 
int main()
{
    int a;
    std::cout << "Отрезок равен : ";
    std::cin >> a;
    std::cout << "\033[1A\033[KОтрезок равен : " << a << " см\n";
}
Добавлено через 49 секунд

такого нет ( в нем)
А мне нужна конкретно графика, а не форматированный текст...
0
k1-801
4 / 4 / 2
Регистрация: 07.01.2013
Сообщений: 135
23.06.2013, 19:36  [ТС] #6
Итак, меня видимо не поняли, поэтому повторюсь еще раз. Мне нужно перевести консоль GNU C++ в графический режим стандартными средствами (ну, и, соответственно, команды графического режима).
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
23.06.2013, 21:08 #7
Цитата Сообщение от k1-801 Посмотреть сообщение
Желательно чтобы не использовалось никаких внешних библиотек (я их и ставить-то не умею
Цитата Сообщение от k1-801 Посмотреть сообщение
Мне говорили писать в видеопамять, но я с этим не разобрался.
Научитесь. Разберитесь. Вообще есть ncurses для псевдографики.
Цитата Сообщение от k1-801 Посмотреть сообщение
Мне нужно перевести консоль GNU C++ в графический режим
Это как?
0
k1-801
4 / 4 / 2
Регистрация: 07.01.2013
Сообщений: 135
23.06.2013, 21:53  [ТС] #8
Цитата Сообщение от Tulosba Посмотреть сообщение
Научитесь. Разберитесь. Вообще есть ncurses для псевдографики.
Это как?
Мне ничего толком не объяснили. Я спрашивал насчет обычной графики (допустим,начертить график). Я как-то пробовал на АСМе писать (давно это было, тогда еще ноутбука не было и win был), ничего не запомнил, но консоль нормально разворачивалась на весь экран и чертила разноцветные точечки, я это довел до прямоугольника с треугольничком. Теперь мне надо сделать такое же, только не на win а на ubuntu и не на АСМ а на C++. Компилятор стандартный.
0
k1-801
4 / 4 / 2
Регистрация: 07.01.2013
Сообщений: 135
03.10.2013, 20:41  [ТС] #9
Поднимаю тему, вопрос не закрыт.
0
iRomul
159 / 100 / 11
Регистрация: 17.10.2012
Сообщений: 480
Завершенные тесты: 1
03.10.2013, 21:04 #10
Поставить досбокс и использовать эти прерывания для переключения видеорежима?
0
k1-801
4 / 4 / 2
Регистрация: 07.01.2013
Сообщений: 135
03.10.2013, 21:04  [ТС] #11
Имеется примерное (исключительно примерное!!!) представление подобного под винду на ассемблере. Да, я пытался таки учить ассемблер)))
Assembler
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
text    segment
assume  CS:text,DS:data
 
begin:  mov AH,0h
    mov AL,10h
    int 10h
 
    mov AH,0Ch
    mov AL,00h
    mov BH,0
    mov CX,0
 
c3: inc AL
    mov BH,0
    mov CX,0
 
c2: mov DX,0
 
c1: int 10h
    inc DX
    cmp DX,350
    jne C1
    inc CX
    cmp CX,640
    jne C2
 
    cmp AL,0Fh
    jne C3
 
    mov AX,3
    int 10h
    
    mov AX,4c00h
    int 21h
 
text    ends
 
data segment
 
data ends
 
stk segment stack
        db  256 dup (0)
stk ends
 
end begin
Поскольку скачивать компилятор, настраивать его и компилировать это НЕЧТО вряд-ли кто-то будет, приложу то что выходит в итоге. Начиная с Vista не запускается. В Wine просто самозакрывается.
Примечание (что сам пытался выснить из кода):

В AX 10h прерывания 10h (прерывание BIOS, вот она, кроссплатформенность!) - перевести видеокарту в нужный нам графический режим.

В AH команда 0Ch прерывания 10h - собственно команда "ставить точку"
В AL цвет от 0 то 15
В CX и DX - координаты точки x и y соответственно.

Так вот, почему винда это умеет, а Ubuntu нет? Несправедливость -_-
0
k1-801
4 / 4 / 2
Регистрация: 07.01.2013
Сообщений: 135
03.10.2013, 21:27  [ТС] #12
Извиняюсь, не залилось в прошлый раз.
0
Вложения
Тип файла: zip compile.zip (517 байт, 6 просмотров)
k1-801
4 / 4 / 2
Регистрация: 07.01.2013
Сообщений: 135
05.10.2013, 23:25  [ТС] #13
Все еще актуально, поднимаю.
0
skulgr
0 / 0 / 0
Регистрация: 25.02.2017
Сообщений: 1
25.02.2017, 03:24 #14
Недавно искал ответ на этот вопрос, и вот что вычитал на одном из форумов: "В C++ вообще нет родной графики. Всё посредством сторонних (для языка) библиотек. Как-правило платформо-зависимых". Так что ПРИДЁТСЯ подключать сторонние библиотеки, например : libbmp (https://unixforum.org/index.php?showtopic=105122), ну или другие библиотеки для символьной графики (как в коде из книги Лафоре) . Хотя спустя СТОЛЬКО времени ответ на этот вопрос тебе вряд ли нужен
0
25.02.2017, 03:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.02.2017, 03:24
Привет! Вот еще темы с ответами:

Консольная графика - C++
Здравствуйте, я написал этот код в Борланд С++ (пример нашел в книге): #include &lt;graphics.h&gt; #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; ...

QT консольная графика и очистка екрана - C++ Qt
Начал использовать QT Есть 2 вопроса 1. Как очистить екран?? (аналог clrscr() в borland) 2. Как нарисовать график ф-ции в консоли?...

Консольная графика. Как подключить <msoftcon>? - C++
В Лафоре есть задание по консольной графике. Я начал недавно, не пинайте сильно. Как подключить &lt;msoftcon&gt;?

Консольная Графика - построение графиков функций - C (СИ)
Нужно построить в консоле 2 графика функции, друг под другом. Проблема в том что не знаю вобще модуля graphics. Кто может скиньте...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

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