Jak wyrenderować okrąg w OpenGL

Autor: Eugene Taylor
Data Utworzenia: 12 Sierpień 2021
Data Aktualizacji: 12 Móc 2024
Anonim
Blender - Ruch kamery po okręgu
Wideo: Blender - Ruch kamery po okręgu

Zawartość

OpenGL, czyli Open Graphics Library, to graficzny interfejs API (interfejs programowania aplikacji) służący do pisania aplikacji 2D i 3D w różnych językach programowania i na różnych platformach. Może być używany do renderowania wszystkiego, od prostych, prymitywnych obiektów po złożone sceny 3D. Open GL jest szeroko stosowany w projektowaniu komputerowym, wizualizacji naukowej, symulacji lotu i grach wideo. Mimo że OpenGl nie ma metod bezpośredniego rysowania okręgu, można go zbudować za pomocą szeregu linii. Aby narysować okrąg, musisz mieć podstawową wiedzę o OpenGL.

Krok 1

Stwórz podstawowy program z rzutnią OpenGL. Jeśli nie jesteś zaznajomiony z tym procesem, na stronie OpenGL znajduje się samouczek.


Krok 2

Dodaj plik math.h.header do swojego programu, wprowadzając następujący kod na początku programu: #include . Zapewni to funkcje cos () i sin () (sinus i cosinus) potrzebne do obliczenia okręgu.

Krok 3

Uruchom metodę circle, dodając następujący kod przed wyświetleniem funkcji zwrotnej:

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

Zmienne „x” i „y” zostaną użyte do zdefiniowania środka okręgu w twoim oknie, podczas gdy „promień” ustali promień okręgu. Liczba całkowita „num_lines” to liczba wierszy użytych do utworzenia koła. Im wyższa liczba, tym gładsze będzie koło.

Krok 4

Dodaj następujący kod konfiguracyjny wewnątrz kluczy:

kąt zmiennoprzecinkowy GO int num_lines GO glColor3f (0,0, 0,0, 0,0) GO.

Zmienna „kąt” będzie zawierała kąt linii użytych do skonstruowania okręgu. Wywołanie funkcji glColor3f () ustawia kolor linii na czarny, gdzie seria trzech 0 odpowiada intensywności koloru czerwonego, zielonego i niebieskiego w skali od 0 do 1.


Krok 5

Dodaj następujący kod poniżej funkcji glColor3f () z kroku 4:

glBegin (GL_LINE_LOOP) GO

To mówi OpenGL, że wszelkie kolejne linie obejmują rysowanie linii. W szczególności narysuje „GL_LINE_LOOP”, czyli serię połączonych linii.

Krok 6

Wprowadź następujący kod pętli for po wywołaniu funkcji glBegin ():

for (int i = 0; i <row_number; i ++) {angle = i * 2 * M_PI / num_line; glVertex2f (x + (cos (kąt) * promień), y + (sin (kąt) * promień)); }

Ta pętla robi trzy rzeczy. Po pierwsze, iteruje zgodnie z wartością „num_lines”, gdzie num_lines jest liczbą całkowitą, rysując linię w każdej iteracji i tworząc okrąg złożony z linii prostych num_lines. Po drugie, oblicza kąt prostych względem środka koła w radianach. „M_P” jest stałą zdefiniowaną w math.h reprezentującą liczbę pi. Na koniec wywołanie funkcji glVertex2f () oblicza współrzędne punktów końcowych linii.


Krok 7

Po zakończeniu pętli wprowadź następujący wiersz kodu:

glEnd () GO

To powie OpenGL, że zakończyłeś rysowanie linii.

Krok 8

Aby narysować okrąg w scenie, dodaj wywołanie metody drawCircle () do funkcji wyświetlania wywołania zwrotnego programu, którą należy przygotować w kroku 1. Określ wartości x, y, radius i num_lines, gdzie x i y reprezentują punkt w twojej scenie promień to promień okręgu, a num_lines to liczba linii, które tworzą okrąg. Ponownie, jeśli nie jesteś zaznajomiony z OpenGL i wyświetlaniem wywołań zwrotnych, zobacz samouczek OpenGL.

Krok 9

Skompiluj i uruchom swój program. Jeśli poprawnie wpisałeś funkcje, powinno się skompilować bez błędów. Jeśli podałeś wartości x, y i promień, powinieneś zobaczyć czarne kółko wyświetlane na białym tle.

Twitter umożliwia publiczne rozpowzechnianie aktualizacji, które każdy może przeczytać. Maz również opcje wyyłania prywatnych tweetów, które mogą czytać tylko ooby, które Cię ...

Jak usunąć tło w Inkscape

Frank Hunt

Móc 2024

Podcza pracy z plikiem obrazu na komputerze za pomocą Inkcape, który jet darmową aplikacją do edycji grafiki wektorowej, możez kończyć z użyciem obrazu tła, który później będzie muiał z...

Radzimy