Számítógépes grafika és képfeldolgozás ZH - 2007. 10. 29., első turnus, B csoport

A VIK Wikiből
A lap korábbi változatát látod, amilyen (vitalap) 2012. október 21., 20:18-kor történt szerkesztése után volt. (Új oldal, tartalma: „{{GlobalTemplate|Infoalap|SzgGrafZH20071029B1}} ==1. feladat (7 pont)== '''Írja fel a projektív sík egyeneseinek implicit(azaz nem paraméteres) egyenletét. Bizo…”)
(eltér) ← Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)
Ugrás a navigációhoz Ugrás a kereséshez

Ez az oldal a korábbi SCH wiki-ről lett áthozva. Az eredeti változata itt érhető el.

Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor kérlek javíts rajta egy rövid szerkesztéssel.

Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót


1. feladat (7 pont)

Írja fel a projektív sík egyeneseinek implicit(azaz nem paraméteres) egyenletét. Bizonyítsa be, hogy a sík minden invertálható homogén lineáris transzformációja ezt az egyenest egyenesre képezi le. Melyek azok a transzformációk, amelyek az egyenest önmagára képezik le? Mi történik az egyenes normálvektorával a transzformáció során?

Megoldás: Projektív sík egyeneseinek egyenlete: [math]A*Xh + B*Yh + C*h = 0[/math]. Képzelhetjük úgy, hogy a tér egy origón átmenő síkjának egyenlete ez (mivel a sík egyenlete [math]ax+by+cz+d=0[/math], és esetünkben d 0-ra adódik). bmetrans.ppt 17. slide ábrája. Tehát a tér minden origón átmenő síkja a projektív sík egy egyenese. (megj.: Ebből is látszik például, hogy a projektív síknak egyetlen ideális egyenese van). Egy sík attól sík, hogy pontjainak koordinátái két szabad változó lineáris kombinációja. ([math]f(x,y)=k*x+l*y[/math]. Megj.: Térbeli egyenes esetében egy szabad változó határozza meg mind a hármat.) Tehát a sík egy pontja valahogy mondjuk így fog kinézni: [math]\underline{v}=(k*y+l*z, y, z)[/math] ahol k és l konstansok. [math]\underline{v}[/math]-t transzformálva: [math]\underline{v}*\underline{\underline{T}}[/math][math]=((k*t_{11}+t_{21})y+(l*t_{11}+t_{31})z, (k*t_{12}+t_{22})y+(l*t_{12}+t_{32})z, (k*t_{13}+t_{23})y+(l*t_{13}+t_{33})z)[/math] Ebből látszik, hogy pontosan akkor függ egyetlen változótól (tehát akkor kapunk térbeli egyenest "sík helyett"), ha [math]\underline{\underline{T}}[/math] egy oszlopa egy másik oszlopának konstansszorosa (megj.: mert ekkor kijöhet például, hogy y együtthatója mindig 0 lesz). Közbevetés: egy mátrix akkor invertálható, ha determinánsa nem 0 (mert [math]\underline{\underline{M}}^{-1}=adj(\underline{\underline{M}})^{T}/det(\underline{\underline{M}})[/math]). Akkor 0 egy mátrix determinánsa, ha Gauss-eleminálva van benne csupa 0 sor. Ez akkor lehetséges, ha egy sora egy másik sorának konstansszorosa. Továbbá igaz, hogy [math]det(\underline{\underline{M}}^{T})=det(\underline{\underline{M}})[/math]. Következésképp ha a mátrix invertálható, akkor nincsen benne két olyan oszlop, hogy az egyik konstansszorosa a másiknak. Így végtérre is mindig két változótól függ, vagyis invertálható lineáris transzformáció síkot síkba visz át. A projektív síkon tehát egyenest egyenesbe.[BR] folyt. köv... -- Fodor Bálint - 2007.12.04.

2. feladat (3 pont)

Írjon C++ függvényt float x0, float y0, float R paraméterekkel, amely piros színű kört rajzol. Használhatja a GL_LINE_LOOP-ot és a glColor3d, glBegin, glVertex2d, glEnd függvényeket.

void drawCircle(float x0, float y0, float R) {
	 glColor3d(1.0, 0.0, 0.0);
	 double div = 2*3.141592/100.;
	 glBegin(GL_LINE_LOOP);
		  for (int k = 0; k < 100; k++) {
				double x = R*cos(div*k) + x0;
				double y = R*sin(div*k) + y0;
				glVertex2d(x, y);
		  }
	 glEnd();
}

-- DeVi - 2007.11.07.

-- GeGe - 2007.10.31.