„Számítógépes grafika házi feladat tutorial” változatai közötti eltérés

Rohamcsiga (vitalap | szerkesztései)
Rohamcsiga (vitalap | szerkesztései)
72. sor: 72. sor:
* A koordináták amiket átadsz azok a normalizált eszköz koordinátarendszerben vannak értelmezve, ahol a (0,0) a képernyő közepe, a (-1, -1) pedig a bal alsó sarok.
* A koordináták amiket átadsz azok a normalizált eszköz koordinátarendszerben vannak értelmezve, ahol a (0,0) a képernyő közepe, a (-1, -1) pedig a bal alsó sarok.
** Példaprogram: [http://pastebin.com/zAMBmSz5 Háromszögek]
** Példaprogram: [http://pastebin.com/zAMBmSz5 Háromszögek]
<br/>
 
<syntaxhighlight lang="c">
<br/> <syntaxhighlight lang="c">
glBegin(GL_TRIANGLES);
glBegin(GL_TRIANGLES);


85. sor: 85. sor:


glEnd();
glEnd();
</syntaxhighlight>
</syntaxhighlight> <br/>


Az eredménye:
Az eredménye:
94. sor: 94. sor:
* Minden egyes ponthoz külön színt is tudunk megadni. A glColor3f()-el lehet állítani a rajzolószínt, ami utána az összes glVertex hívásra érvényes lesz. Az összetettebb alakzatoknál az egyes pontok színei interpolálódnak, és szép színátmenetet kapunk.
* Minden egyes ponthoz külön színt is tudunk megadni. A glColor3f()-el lehet állítani a rajzolószínt, ami utána az összes glVertex hívásra érvényes lesz. Az összetettebb alakzatoknál az egyes pontok színei interpolálódnak, és szép színátmenetet kapunk.
** Példaprogram: [http://pastebin.com/GpEqzmB1 Smiley]
** Példaprogram: [http://pastebin.com/GpEqzmB1 Smiley]
<br/>
 
<syntaxhighlight lang="c">
<br/> <syntaxhighlight lang="c">
#define CIRCLE_RESOLUTION 32
#define CIRCLE_RESOLUTION 32


137. sor: 137. sor:
   }
   }
} glEnd();
} glEnd();
</syntaxhighlight>
</syntaxhighlight> <br/>


Az eredménye:
Az eredménye:
156. sor: 156. sor:
*** Egér gombbal kattintás - onMouse
*** Egér gombbal kattintás - onMouse
*** Az egér eseményekkel kapcsolatban egy apró kellemetlenség, hogy a GLUT a kattintások helyét az oprendszer koordináta rendszerében adja át nekünk (ablak bal fölső sarka az origó, x jobbra, y lefelő nő, az egység pedig a pixel), míg mi normalizált eszköszkoordinátákkal dolgozunk (az albak közepe az origó, a x jobbra, az y felfele nő, és mindkét dimenzióban az ablak méretének a fele az egység). Ezért kénytelenek vagyunk átszámolni azokat az értékeket, amiket a GLUT ad nekünk. Erre egy lehetséges megodás:
*** Az egér eseményekkel kapcsolatban egy apró kellemetlenség, hogy a GLUT a kattintások helyét az oprendszer koordináta rendszerében adja át nekünk (ablak bal fölső sarka az origó, x jobbra, y lefelő nő, az egység pedig a pixel), míg mi normalizált eszköszkoordinátákkal dolgozunk (az albak közepe az origó, a x jobbra, az y felfele nő, és mindkét dimenzióban az ablak méretének a fele az egység). Ezért kénytelenek vagyunk átszámolni azokat az értékeket, amiket a GLUT ad nekünk. Erre egy lehetséges megodás:
<br/>
 
<syntaxhighlight lang="c">
<br/> <syntaxhighlight lang="c">
struct Vector {
struct Vector {
   float x, y;
   float x, y;
170. sor: 170. sor:
   return ret;
   return ret;
}
}
</syntaxhighlight>
</syntaxhighlight> <br/>
 
* Példa: [http://pastebin.com/Ns0fiFL2 Egyszerű rajzolóprogram]
* Példa: [http://pastebin.com/Ns0fiFL2 Egyszerű rajzolóprogram]
<div style="text-align:left;margin:0px auto;">
<div style="text-align:left;margin:0px auto;">