Quando estudei a linguagem de programação C / C ++, usamos uma biblioteca chamada Allegro , que parecia ser uma boa & amp; biblioteca fácil de fazer programação gráfica em.
Sobre este tópico Como faço para usar gráficos. h no Ubuntu? , executei o seguinte programa (mostrado abaixo do bloco), mas o programa infelizmente termina automaticamente após alguns segundos com a seguinte mensagem:
$ gcc -o DDA.o DDA.c -lgraph
$ DDA.o
[xcb] Unknown sequence number while processing queue
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
DDA.o: ../../src/xcb_io.c:274: poll_for_event: Assertion '!xcb_xlib_threads_sequence_lost' failed.
#include <graphics.h>
#include <stdio.h>
#define ROUND(a) ((int) (a+0.5))
#include <X11/Xlib.h>
main()
{
int gd = DETECT,gm,left=100,top=100,right=200,bottom=200,x=300,y=150,radius=50;
initgraph(&gd,&gm,NULL);
rectangle(left, top, right, bottom);
circle(x, y, radius);
bar(left + 300, top, right + 300, bottom);
line(left - 10, top + 150, left + 410, top + 150);
ellipse(x, y + 200, 0, 360, 100, 50);
outtextxy(left + 100, top + 325, "C Graphics Program");
delay(5000);
closegraph();
return 0;
}
PS: Eu odeio programar em TC ++ (usando o DOSBOX). SE VOCÊ NÃO CONHECE A SOLUÇÃO, POR FAVOR, RECOMENDA-ME ALGO EM QUE POSSO EXECUTAR COM SEGURANÇA OS PROGRAMAS GRÁFICOS EM C ON:)
Você tem que chamar a função initgraph dentro do seu programa gráfico C passando o caminho da sua biblioteca BGI (interface gráfica da Borland) para inicializar o driver gráfico. Ele inicializa o sistema gráfico carregando o driver gráfico transmitido e, em seguida, alterando o sistema para o modo gráfico. Ele também redefine ou inicializa todas as configurações gráficas, como cor, paleta, posição atual, etc., para seus valores padrão.
driverDirectoryPath : Especifica o caminho do diretório onde os arquivos do driver gráfico (arquivos BGI) estão localizados. Se o caminho do diretório não for fornecido, ele procurará arquivos do driver no diretório atual do diretório de trabalho. Verifique este link do programa de amostra
Você pode adicionar a seguinte função antes de fechar o gráfico para ver a saída estável. Funcionou para mim!
void wait_for_char () {
//Wait for a key press
int in = 0;
while (in == 0) {
in = getchar();
}
}