Conheça a iniciativa da Biblioteca dos Desenvolvedores
Índice da Biblioteca
Área dos Usuários
Fórum de Discussão
RETAS E FIGURAS GEOMÉTRICAS
Esse artigo tem como objetivo mostrar que o Allegro possui funções para de desenhar as figuras geométricas de forma fácil e prática.
Não iremos estudar a fundo as figuras geométricas muito menos geometria plana.
Dessa forma fica a critério do programador utilizar ou não durante o desenvolvimento do jogo. São elas:
void circle(BITMAP *bmp, int x, int y, int radius, int color);
Essa função desenha um circulo especificando o centro e o raio. Ela recebe como argumentos:
O exemplo acima deverá mostrar um circulo oval preenchido em laranja no centro da tela.
void rect(BITMAP *bmp, int x1, int y1, int x2, int y2, int color);
Essa função desenha um retângulo a partir de duas coordenadas opostas. A primeira coordenada está no canto superior esquerdo. A segunda coordenada está no canto inferior direito. Ela recebe como argumentos:
void rectfill(BITMAP *bmp, int x1, int y1, int x2, int y2, int color);
Essa função desenha um retângulo preenchido a partir de duas coordenadas opostas. A primeira coordenada está no canto superior esquerdo. A segunda coordenada está no canto inferior direito. Ela recebe como argumentos:
Destino do desenho: screen
Posição x1: 50
Posição y1: 50
Posição x2: 200
Posição y2: 150
Cor do contorno e preenchimento: makecol(255,255,0) - Amarelo
O exemplo acima desenha um polígono preenchido em amarelo com 6 vértices. Primeiramente precisamos criar um array, nesse caso iPontos, responsável por armazenar as coordenadas de cada ponto. O tamanho do array sempre vai ser 2x (duas vezes) a quantidade de vértices porque cada ponto possui posição x e y.
void triangle(BITMAP *bmp, int x1, y1, x2, y2, x3, y3, int color);
Essa função desenha um triângulo na tela especificando as coordenadas dos três vértices do triangulo. Ela recebe como argumentos:
Destino do desenho: screen
Posição x1,y1 – vértice 1: 100,100
Posição x2,y2 – vértice 2: 50,200
Posição x3,y3 – vértice 3: 150,200
Cor do contorno e preenchimento: makecol(255,255,0) – Amarelo
O exemplo acima traça uma linha amarela na diagonal do ponto 100,100 ao ponto 200,200.
void fastline(BITMAP *bmp, int x1, int y1, int x2, int y2, int color);
Essa função desenha uma linha de um ponto x1,y1 ao x2,y2. É uma versão mais rápida que a função line, porém, a exatidão do pixel não está garantida para esta função. Ela recebe como argumentos:
O exemplo acima traça uma linha amarela na diagonal do ponto 100,100 ao ponto 200,200.
void hline(BITMAP *bmp, int x1, int y, int x2, int color);
Essa função desenha uma linha horizontal na tela. Ela recebe como argumentos:
Destino do desenho: screen
Posição Inicial x1,y: 0,100
Posição final x2: 640 – Até o final da tela.
Cor da linha: makecol(255,255,0) – Amarelo
Exemplo:
hline(screen, 0, 100, 640, makecol(255,255,0));
A função acima desenha uma linha amarela na horizontal. Ela vai da posição 0 a posição 640. De ponta a ponta.
void vline(BITMAP *bmp, int x, int y1, int y2, int color);
Essa função desenha uma linha na vertical. Ela recebe como argumentos:
Destino do desenho: screen
Posição Inicial x1,y: 0,100
Posição final x2: 640 – Até o final da tela.
Cor da linha: makecol(255,255,0) – Amarelo
Exemplo:
vline(screen, 320, 0, 480, makecol(255,255,0));
O exemplo acima desenha uma linha amarela na vertical. Ela vai do ponto 320 (metade da tela) até o ponto 480 (final da tela). De ponta a ponta dividindo a tela ao meio.
Caro leitor, chegamos ao fim do entendimento das funções responsáveis por desenhar as figuras geométricas na tela.
O conteúdo foi bastante resumido, porém bastante prático.
Cabe a você saber como e quando utilizar essas funções no seu projeto.
Com base no aprendizado acima você já pode desenvolver o layout de um relógio analógico usando a função de circunferência e linhas ou fazer uma caixa de dialogo entre dois personagens com um retângulo.
Qualquer dúvida entre em contato com o pessoal da BDJogos através do fórum.