Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
JoseCicrano

C++ Usar imagens vetoriais no Allegro

Recommended Posts

Você teria que estudar as funções para gráficos primitivos do Allegro para desenhar pontos, linhas, curvas a partir de cálculos matemáticos.

 

http://liballeg.org/stabledocs/en/alleg013.html

 

Não estudei nada a respeito mas aqui tem um exemplo das curvas de Bezier em Allegro 4, essas curvas são exemplo de gráfico vetorial usado por muitos programas gráficos. Acho que pode te ajudar a começar algo.

 

curvas-de-bezier.jpg

 

//================================================================
// Nome do Arquivo: random_arcs.c
// Filename: random_arcs.c
//
// Descrição: O programa exibe curvas de bezier em posições e
// cores aleatórias usando a função arc da biblioteca allegro
//================================================================

#include <cstdlib>
#include <ctime>
#include <allegro.h>

int main(int argc, char *argv[])
{
    // Coordenadas dos 4 pontos de controle da curva
    int points[8];

    // Cor da curva
    int color;

    // Contador
    int i;

    // Inicializa a biblioteca Allegro
    allegro_init();

    // Inicializa o módulo do relógio
    install_timer();

    // Inicializa o teclado
    install_keyboard();

    // Define a profundidade de cores para 32 bits
    set_color_depth(32);

    // Define a resolução de 640x480 no modo janela
    set_gfx_mode(GFX_AUTODETECT_WINDOWED,640, 480, 0, 0);

    // Muda o título da janela
    set_window_title("Curvas de Bezier");

    // Inicia o gerador de números aleatórios
    srand(time(NULL));

    // Fica em loop até pressionar a tecla ESC
    while(!key[KEY_ESC]) {

        // Configura os atributos da curva
        for(i = 0; i < 4; i++) {
            points[i*2] = rand() % 640;
            points[i*2 + 1] = rand() % 480;
        }

        color  = makecol(rand() % 256, rand() % 256, rand() % 256);

        // Desenha uma curva de bezier em posição e cor aleatória
        spline(screen, points, color);

        // Espera 300 milisegundos para economizar processamento
        rest(300);

        // Espera a sincronização vertical
        vsync();
    }
    // Sai do programa
    allegro_exit();
    return 0;
}
// Esta macro converte o main para WinMain()
END_OF_MAIN();

 

Exemplo retirado do site:

http://www.programasprontos.com/tag/computacao-grafica/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×