Jak renderować okrąg w OpenGL

Autor: Bobbie Johnson
Data Utworzenia: 2 Kwiecień 2021
Data Aktualizacji: 16 Móc 2024
Anonim
How To Render CIRCLES (OpenGL/Vulkan/DirectX/Metal)
Wideo: How To Render CIRCLES (OpenGL/Vulkan/DirectX/Metal)

Zawartość

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


Instrukcje

Nie ma bezpośredniej metody tworzenia okręgu w OpenGL, ale nadal można skomponować koło z odpowiednimi liniami kodu (Creatas / Creatas / Getty Images)
  1. Stwórz podstawowy program z oknem rzutni OpenGL. Jeśli nie znasz tego procesu, na stronie OpenGL znajduje się samouczek.

  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) wymagane do obliczenia okręgu.

  3. Rozpocznij metodę okręgu, dodając następujący kod przed wyświetleniem funkcji wywołania zwrotnego:

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

    Zmienne „x” i „y” będą używane do definiowania środka okręgu w oknie, podczas gdy „promień” określa promień okręgu. Liczba całkowita „num_lines” to liczba linii użytych do skomponowania okręgu. Im większa ta liczba, tym gładszy będzie okrąg.


  4. Dodaj następujący kod konfiguracji do kluczy:

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

    Zmienna „angle” 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 czerwieni, zieleni i błękitu w skali od 0 do 1.

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

    glBegin (GL_LINE_LOOP) GO

    Mówi to OpenGL, że każda kolejna linia wymaga rysowania linii. W szczególności narysuje „GL_LINE_LOOP”, który jest serią połączonych linii.

  6. Wprowadź następujący kod z pętli po wywołaniu glBegin ():

    for (int i = 0; i <num_lines; i ++) {angle = i * 2 * M_PI / num_lines; glVertex2f (x + (cos (kąt) * promień) i + (bez (kąt) * promień)); }

    Ten krawat robi trzy rzeczy. Najpierw iteruje zgodnie z wartością „num_lines”, gdzie num_lines jest liczbą całkowitą, rysując linię przy każdej iteracji i tworząc okrąg składający się z num_lines linii prostych. Po drugie, oblicz kąt linii względem środka okręgu w radianach. „M_P” jest stałą zdefiniowaną w math.h reprezentującą pi. Wreszcie wywołanie glVertex2f () oblicza współrzędne punktów końcowych wierszy.


  7. Po pętli wprowadź następujący wiersz kodu:

    glEnd () GO

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

  8. Aby narysować okrąg w scenie, dodaj wywołanie z metody drawCircle () do funkcji wywołania zwrotnego programu, która musi być przygotowana w kroku 1. Określ wartości x, y, promień i a_line, gdzie xiy reprezentują punkt w swojej scenie promień jest promieniem okręgu, a num_lines jest liczbą linii tworzących okrąg. Ponownie, jeśli nie jesteś zaznajomiony z OpenGL i wyświetlaczem zwrotnym, zobacz samouczek OpenGL.

  9. Skompiluj i uruchom program. Jeśli poprawnie wprowadziłeś funkcje, powinien się skompilować bez błędów. Jeśli określiłeś wartości x, y i promienia, powinieneś zobaczyć czarne kółko wyświetlane na białym tle.

Czego potrzebujesz

  • Komputer z obsługą OpenGL
  • Narzędzia do kompilacji edytora tekstu i języka C lub środowiska programistycznego C