# 2D modellezés alapelemei

- ## Grafikus primitívek OpenGL-ben

- ## Köríven található pontok koordinátájának számítása

      void DiskApprox(int n, double radius, float x, float y)
      {
        /*
          n      - hany oldalu szabalyos sokszoggel kozelitunk (n legalább 3)
          radius - a sokszog kore irhato kor sugara
          x, y   - a sokszog kore irhato kor kozeppontjanak koordinatai
        */

        int i;
        GLfloat angle;

        if(n < 3)
          n = 3;

        glBegin(GL_POLYGON);
        for(i = 0, angle = 0.0; i < n; i++, angle += 2.0 * GL_PI / n)
        {
            glVertex2f(x + radius * cos(angle), y + radius * sin(angle));
        }
        glEnd();
      }

- ## Példa #1

  Sokszögrajzoló: Készítsünk OpenGL programot szabályos sokszög modellezésére. A kurzormozgató nyilak segítségével interaktívan változtathassuk a szabályos sokszög oldalainak számát és a köré írható kör sugarát. Használjuk ki, hogy a szabályos sokszög csúcsai egy körvonalon helyezkednek el, egyenlő ívekre osztva azt. Az F1 billentyű lenyomásával választhassunk a kitöltött és körvonalas megjelenítési módok között.

  A megoldás részletes leírása.

- ## Sokszögrajzoló fordítása és futtatása.

  - sokszog.c Makefile
  - Módosítsuk úgy a programot, hogy a `GL_POLYGON` primitív helyett másokat használjunk (pl. `GL_LINE_LOOP`, `GL_TRIANGLES`, `GL_TRIANGLE_FAN`)!

- ## Nate Robins-féle shapes tutorial

  | Windows: `shapes.exe` `glut32.dll` Linux: `/pub/szgrafika/szamitogepes_grafika/Tutors.linux/shapes` Bal egérgomb: paramétermódosítás. Jobb egérgomb: opciók (mindkét panelen!).

- ## Programváz a további feladatok megoldásához

  alap1.c

- ## Feladatok

  1. Modellezük az alábbi konkáv alakzatokat!

  2. Modellezzünk fogaskereket!

     Segítség a megoldáshoz.