Como renderizar um círculo em OpenGL

Escrito por rob senn | Traduzido por david henrique pires ferraz
Como renderizar um círculo em OpenGL
Não há um método direto para fazer um círculo em OpenGL, mas ainda assim é possível compor um com as linhas de código certas (Creatas/Creatas/Getty Images)

OpenGL, ou Open Graphics Library (Biblioteca de gráficos livre), é uma API gráfica (Interface de programação de aplicativos, na sigla em inglês) para escrever aplicativos 2D e 3D em várias linguagens e plataformas de programação. Ela pode ser usada para renderizar qualquer coisa, desde objetos simples e primitivos até cenas 3D complexas. O Open GL é largamente utilizado em design computadorizado, visualização científica, simulação de voo e videogames. Mesmo que o OpenGl não tenha métodos para desenhar um círculo diretamente, é possível construir um usando uma série de linhas. Você precisará ter um conhecimento básico de OpenGL para desenhar o círculo.

Instruções

  1. 1

    Faça um programa básico com uma janela de viewport OpenGL. Se não estiver familiarizado com esse processo, existe um tutorial na página do OpenGL.

  2. 2

    Adicione o arquivo math.h.header ao seu programa entrando o seguinte código no início do programa: #include <math.h>. Isso lhe providenciará as funções cos() e sin () (seno e cosseno) necessárias para se calcular o círculo.

  3. 3

    Comece o método do círculo adicionando o seguinte código antes de exibir a função callback:

    void desenharCirculo(GLint x, GLint y, GLint raio, int num_linhas) { }

    As variáveis "x" e "y" serão usadas para definir o centro do círculo na sua janela, enquanto o "raio" estabelece o raio do círculo. O inteiro "num_linhas" é o número de linhas usado para compor o círculo. Quanto maior esse número, mais suave o círculo parecerá.

  4. 4

    Adicione o seguinte código de configuração dentro das chaves:

    float angulo GO int num_linhas GO glColor3f(0.0, 0.0, 0.0) GO.

    A variável "angulo" conterá o ângulo das linhas usadas para construir o círculo. A chamada da função glColor3f() define a cor das linhas para preto, onde a série de três 0 corresponde à intensidade de vermelho, verde e azul numa escala de 0 a 1.

  5. 5

    Adicione o seguinte código abaixo da função glColor3f() do passo 4:

    glBegin(GL_LINE_LOOP) GO

    Isso diz ao OpenGL que quaisquer linhas seguintes envolvem o desenho de linhas. Especificamente, ela desenhará um "GL_LINE_LOOP", que é uma série de linhas conectadas.

  6. 6

    Entre o seguinte código de um laço de para depois da chamada do glBegin():

    for(int i = 0; i < num_linhas; i++) { angulo = i * 2 * M_PI / num_linhas; glVertex2f(x + (cos(angulo) * raio), y + (sin(angulo) * raio)); }

    Esse laço faz três coisas. Primeiramente, ela itera de acordo com o valor de "num_linhas", onde num_linhas é um número íntegro, desenhando uma linha em cada iteração e resultando em um círculo composto de num_linhas de linhas retas. Em segundo lugar, computa o ângulo das linhas relativo ao centro do círculo em radianos. "M_P" é uma constante definida em math.h representando pi. Finalmente, a chamada do glVertex2f() calcula as coordenadas dos pontos finais das linhas.

  7. 7

    Depois do laço-para, entre a seguinte linha de código:

    glEnd() GO

    Isso dirá ao OpenGL que você terminou de desenhar as linhas.

  8. 8

    Para desenhar o círculo em uma cena, adicione uma chamada do método drawCircle() para a função de display callback do programa, que deve ser preparada no passo 1. Especifique os valores de x, y, raio e num_linhas, onde x e y representam um ponto na sua cena, raio é o raio do círculo, e num_linhas é o número de linhas que compõe o círculo. Novamente, se não estiver familiarizado com o OpenGL e o display callback, veja o tutorial do OpenGL.

  9. 9

    Compile e rode seu programa. Se tiver entrado as funções corretamente, ele deve compilar sem erros. Se tiver especificado os valores de x, y e raio, você deve ver um círculo preto exibido em um fundo branco.

O que você precisa?

  • Computador com suporte a OpenGL
  • Editor de texto e ferramentas de compilação de linguagem C ou ambiente de desenvolvimento em C

Lista completaMinimizar

Filtro:
  • Geral
  • Artigos
  • Slides
  • Vídeos
Mostrar:
  • Mais relevantes
  • Mais lidos
  • Mais recentes

Nenhum artigo disponível

Nenhum slide disponível

Nenhum vídeo disponível