„Számítógépes grafika házi feladat tutorial” változatai közötti eltérés
| 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"> | <syntaxhighlight lang="c"> | ||
glBegin(GL_TRIANGLES); | glBegin(GL_TRIANGLES); | ||
| 93. 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"> | <syntaxhighlight lang="c"> | ||
#define CIRCLE_RESOLUTION 32 | #define CIRCLE_RESOLUTION 32 | ||
| 154. 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"> | |||
struct Vector { | struct Vector { | ||
float x, y; | float x, y; | ||
} | } | ||
const int kScreenWidth = 600, kScreenHeight = 600; | |||
Vector convertToNdc(float x, float y) { | Vector convertToNdc(float x, float y) { | ||
| 165. sor: | 170. sor: | ||
return ret; | return ret; | ||
} | } | ||
</ | </syntaxhighlight> | ||
* 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;"> | ||