Ir ao conteúdo
  • Cadastre-se

C++ Usar imagens vetoriais no Allegro


JoseCicrano

Posts recomendados

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/

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!