Számítógépes grafika és képfeldolgozás - Vizsga, 2015.01.12.
Tartalomjegyzék
1.Feladat
1.rész
- Feladat
Van egy madarunk, ami az origóból ([math]p_0=\underline{0}[/math]) [math]v[/math] sebességgel indul [math]t=0[/math] időpontban. [math]t=1[/math] időpontban [math]p[/math] pozícióba kerül. Adja meg az idő-parametrizáltan, milyen pozícióban, milyen sebességgel repült.
- Megjegyzés
Sajnos a feladatból (számomra) hiányzott egy paraméter ([math]v[/math] értéke [math]t=1[/math] időpontban, vagy, hogy állandó-e a gyorsulás). Amennyiben valaki tud egy jobb, egyértelműbb megoldást, kérem, hogy ossza meg ebben a cikkben.
- Megoldás #1
Feltételezzük, hogy [math]a(t)[/math] állandó ( csak [math]a[/math]-ként hivatkozok rá):
[math]v(t)=at+v[/math]
[math]p(t)={a \over 2}t^2 + vt + \underline{0} = {a \over 2}t^2 + vt[/math]
Ebből következően ha [math]t=1[/math]:
[math]p={a \over 2} + v[/math]
[math]a=2(p-v)[/math]
Tehát:
[math]v(t)=2(p-v)t+v[/math]
[math]p(t)=(p-v)t^2+vt[/math]
2. rész
Amennyiben a madár modelje alapesetben csőrével az +y, farkával a -y, hátával a +z és hasával a -z valamint a szárnyai az x tengelyek felé néz, milyen transzformációkat kell elvégeznünk, hogy megfelelő irányban és pozícióban legyen minden időpillanatban úgy, hogy forduláskor bedől (Frenet keret)
- Megjegyzés
Valószínűleg hibás (sorry). Érdemes átnézni a jegyzeteket (bmeanimr.ppt ~17. dia) és leellenőrizni. Ebből próbáltam én is összerakni. Amennyiben mégis helyes, akkor kéretik törölni ezt a két sort :)
- Megoldás
A jegyzetben az alábbi koordinálták vannak:
- Madár csőre: +z tengely
- Madár háta: +y tengely
- Madár szárnyai: x tengely
Ennek köszönhetően fel kell cserélni az egyenletekben a tengelyeket:
[math]y_m = r'(t) = v(t)[/math]
[math]x_m = y_m \times r''(t) = y_m \times a[/math]
[math]z_m = y_m \times x_m[/math]
Ebbe a három vektorba kell forgatni a madarat. Az első cél, hogy az x tengely megfeleljen (két forgatás - z és y), utána az y tengelyt feleltetjük meg (1 forgatás - x)
- Ahhoz, hogy megtudjuk a forgatás mértékét, először le kell képeznünk az [math]x_m[/math] vektort az x,y síkra:
[math]x_m'= \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 0 \end{bmatrix} x_m [/math]
- Egy skalárszorzással megtudjuk a szöget:
[math]\varphi_z=\cos^{-1}\left({x_m' \over |x_m'|}\cdot \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix} \right)[/math]
- Forgassuk be az x tengelyt a helyére y-ból való forgatással:
[math]\varphi_y=\cos^{-1}\left({x_m' \over |x_m'|} \cdot {x_m \over |x_m|}\right)[/math]
- Keressük meg az y tengely jelenlegi helyét:
[math]y'= \begin{bmatrix} \cos\varphi_z & -\sin\varphi_z & 0 \\ \sin\varphi_z & \cos\varphi_z & 0 \\ 0 & 0 & 1 \\ \end{bmatrix} \cdot \begin{bmatrix} 0 \\ 1 \\ 0 \end{bmatrix} = \begin{bmatrix} -\sin\varphi_z \\ \cos\varphi_z \\ 0 \end{bmatrix} [/math]
- és számoljuk ki a y' tengely és ym közötti szöget
[math]\varphi_x=\cos^{-1}\left({y' \over |y'|} \cdot {y_m \over |y_m|}\right)[/math]
Ezekkel a szögekkel[math](\varphi_x,\varphi_y,\varphi_z)[/math] kell forgatni a madarat, és el kell mozdítani [math]p(t)[/math] vektorral
2. feladat
Már nem emlékszem...