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.

Step 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.

Step 2

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

Step 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á.

Step 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.

Step 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.

Step 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.

Step 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.

Step 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.

Step 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.

eHow Brasil
×