„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">
<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:
<pre>
<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;
}
}
</pre>
</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;">