„Számítógépes grafika és képfeldolgozás - Vizsga, 2015.01.12.” változatai közötti eltérés

A VIK Wikiből
43. sor: 43. sor:
<math>z_m = y_m \times x_m</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)
Ebbe a három vektorba kell forgatni a madarat. Az első cél, hogy az <math>x</math> tengelyt befordítsuk a <math>x_m</math> helyére ( 2 forgatás - <math>\varphi_z</math> és <math>\varphi_y</math>), utána az <math>y</math> tengelyt kell beforgatnunk a <math>y_m</math> helyére ( 1 forgatás - <math>\varphi_x</math> ). Belátható, hogy e két vektorral a <math>z</math> tengely is a helyére kerül
* A <math>\varphi_z</math>-t hamar kinyerhetjük a <math>x_m</math> y értékéből
* A <math>\varphi_z</math>-t hamar kinyerhetjük a <math>x_m</math>-ben található <math>y</math> értékből:
<math>\varphi_z'=\sin^{-1}\left(
<math>\varphi_z'=\sin^{-1}\left(
\begin{bmatrix}
\begin{bmatrix}
58. sor: 58. sor:
</math>
</math>


* Forgassuk be az <math>x</math> tengelyt a helyére <math>y</math>-ból való forgatással. Az ehhez tartozó szög:
* A forgatott <math>x'</math> tengely és az <math>x_m</math> által bezárt szög fogja alkotni a <math>\varphi_y</math>-t:
<math>\varphi_y'=\cos^{-1}\left({x_m' \over |x_m'|} \cdot {x_m \over |x_m|}\right)</math>
<math>x'=
\begin{bmatrix}
\cos\varphi_z & -\sin\varphi_z & 0 \\
\sin\varphi_z & \cos\varphi_z & 0 \\
0 & 0 & 1 \\
\end{bmatrix}
\begin{bmatrix}
1 \\
0 \\
0
\end{bmatrix}
=
\begin{bmatrix}
\cos\varphi_z \\
\sin\varphi_z \\
0
\end{bmatrix}
</math>
 
<math>\varphi_y'=\cos^{-1}\left({x' \over |x'|} \cdot {x_m \over |x_m|}\right)</math>


<math>\varphi_y
<math>\varphi_y
67. sor: 86. sor:
\end{cases}
\end{cases}
</math>
</math>
* Keressük meg az <math>y</math> tengely jelenlegi helyét:
* Hasonlóan az előzőekhez az <math>y'</math> tengelyt ki kell számolni, és az <math>y_m</math>-el bezárt szög lesz a <math>\varphi_y</math>:
<math>y'=
<math>y'=
\begin{bmatrix}
\begin{bmatrix}
86. sor: 105. sor:
\end{bmatrix}
\end{bmatrix}
</math>
</math>
* és számoljuk ki a <math>y'</math> tengely és <math>y_m</math> közötti szöget
 
<math>\varphi_x'=\cos^{-1}\left({y' \over |y'|} \cdot {y_m \over |y_m|}\right)</math>
<math>\varphi_x'=\cos^{-1}\left({y' \over |y'|} \cdot {y_m \over |y_m|}\right)</math>



A lap 2015. január 12., 19:27-kori változata

1.Feladat

1.rész

Feladat

Van egy madarunk, ami az origóból (p0=0_) v sebességgel indul t=0 időpontban. t=1 időpontban p 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 (v értéke t=1 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 a(t) állandó ( csak a-ként hivatkozok rá):

v(t)=at+v

p(t)=a2t2+vt+0_=a2t2+vt

Ebből következően ha t=1:

p=a2+v

a=2(pv)

Tehát:

v(t)=2(pv)t+v

p(t)=(pv)t2+vt

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 :)

(A x|x| kifejezés egyszerűen csak normalizálást jelent.)

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:

ym=r(t)=v(t)

xm=ym×r(t)=ym×a

zm=ym×xm

Ebbe a három vektorba kell forgatni a madarat. Az első cél, hogy az x tengelyt befordítsuk a xm helyére ( 2 forgatás - φz és φy), utána az y tengelyt kell beforgatnunk a ym helyére ( 1 forgatás - φx ). Belátható, hogy e két vektorral a z tengely is a helyére kerül

  • A φz-t hamar kinyerhetjük a xm-ben található y értékből:

φz=sin1([010][xm|xm|])

φz{x>0=φzx0=πφz

  • A forgatott x tengely és az xm által bezárt szög fogja alkotni a φy-t:

x=[cosφzsinφz0sinφzcosφz0001][100]=[cosφzsinφz0]

φy=cos1(x|x|xm|xm|)

φy{z>0=φyz0=φy

  • Hasonlóan az előzőekhez az y tengelyt ki kell számolni, és az ym-el bezárt szög lesz a φy:

y=[cosφzsinφz0sinφzcosφz0001][010]=[sinφzcosφz0]

φx=cos1(y|y|ym|ym|)

φx{z>0=φxz0=φx

Ezekkel a szögekkel(φx,φy,φz) kell forgatni a madarat, és el kell mozdítani p(t) vektorral

2. feladat

Már nem emlékszem...