Come rendere un cerchio in OpenGL

Autore: Judy Howell
Data Della Creazione: 25 Luglio 2021
Data Di Aggiornamento: 17 Novembre 2024
Anonim
Rendering Circles in a Game Engine // Game Engine series
Video: Rendering Circles in a Game Engine // Game Engine series

Contenuto

OpenGL, o Open Graphics Library, è un'API grafica (Application Programming Interface) per la scrittura di applicazioni 2D e 3D in vari linguaggi di programmazione e piattaforme. Può essere utilizzato per eseguire il rendering di qualsiasi cosa, da oggetti semplici e primitivi a scene 3D complesse. Open GL è ampiamente utilizzato nella progettazione di computer, nella visualizzazione scientifica, nella simulazione di volo e nei videogiochi. Anche se OpenGl non dispone di metodi per disegnare direttamente un cerchio, è possibile crearne uno utilizzando una serie di linee. Avrai bisogno di una conoscenza di base di OpenGL per disegnare il cerchio.

Passo 1

Crea un programma di base con una vista OpenGL. Se non hai familiarità con questo processo, c'è un tutorial sulla pagina OpenGL.


Passo 2

Aggiungi il file math.h.header al tuo programma inserendo il seguente codice all'inizio del programma: #include . Questo ti fornirà le funzioni cos () e sin () (seno e coseno) necessarie per calcolare il cerchio.

Passaggio 3

Avvia il metodo circle aggiungendo il codice seguente prima di visualizzare la funzione di callback:

void drawCircle (GLint x, GLint y, GLint radius, int num_lines) {}

Le variabili "x" e "y" verranno utilizzate per definire il centro del cerchio nella finestra, mentre il "raggio" stabilisce il raggio del cerchio. L'intero "num_lines" è il numero di righe utilizzate per comporre il cerchio. Più alto è questo numero, più liscio apparirà il cerchio.

Passaggio 4

Aggiungi il seguente codice di configurazione all'interno delle chiavi:

float angle GO int num_lines GO glColor3f (0.0, 0.0, 0.0) GO.

La variabile "angle" conterrà l'angolo delle linee usate per costruire il cerchio. La chiamata alla funzione glColor3f () imposta il colore delle linee sul nero, dove la serie di tre 0 corrisponde all'intensità del rosso, del verde e del blu su una scala da 0 a 1.


Passaggio 5

Aggiungere il codice seguente sotto la funzione glColor3f () dal passaggio 4:

glBegin (GL_LINE_LOOP) VAI

Questo dice a OpenGL che qualsiasi riga successiva coinvolge il disegno di linee. Nello specifico, disegnerà una "GL_LINE_LOOP", che è una serie di linee collegate.

Passaggio 6

Immettere il codice seguente per un ciclo for dopo la chiamata glBegin ():

for (int i = 0; i <row_number; i ++) {angle = i * 2 * M_PI / num_line; glVertex2f (x + (cos (angolo) * raggio), y + (sin (angolo) * raggio)); }

Questo ciclo fa tre cose. Innanzitutto, itera in base al valore di "num_lines", dove num_lines è un numero intero, tracciando una linea in ogni iterazione e risultando in un cerchio composto da linee rette num_lines. Secondo, calcola l'angolo delle linee rispetto al centro del cerchio in radianti. "M_P" è una costante definita in math.h che rappresenta pi greco. Infine, la chiamata a glVertex2f () calcola le coordinate dei punti finali delle linee.


Passaggio 7

Dopo il loop-to, inserisci la seguente riga di codice:

glEnd () GO

Questo dirà a OpenGL che hai finito di disegnare le linee.

Passaggio 8

Per disegnare il cerchio in una scena, aggiungi una chiamata dal metodo drawCircle () alla funzione di visualizzazione della richiamata del programma, che deve essere preparata nel passaggio 1. Specifica i valori di x, y, raggio e num_line, dove x e y rappresentano un punto nella tua scena, raggio è il raggio del cerchio e num_lines è il numero di linee che compongono il cerchio. Anche in questo caso, se non si ha familiarità con OpenGL e la visualizzazione del callback, vedere il tutorial OpenGL.

Passaggio 9

Compila ed esegui il tuo programma. Se hai inserito correttamente le funzioni, dovrebbe essere compilato senza errori. Se hai specificato i valori per x, y e raggio, dovresti vedere un cerchio nero visualizzato su uno sfondo bianco.

La maggior parte delle perone i fa prendere dal panico olo vedendo un erpente, che ia velenoo o meno, e fa tutto il poibile per farlo andare via. fortunatamente, non eite un unico metodo o un unico re...

Il ial è un materiale per corde reitente, durevole e veratile, che può eere utilizzato per realizzare tappeti, cetini e molti altri utenili. Tuttavia, a volte ha un forte odore che ci vuole ...

Affascinante