6. Felületek

6.1. Leírási módok

  • Explicit: \(z = f(x, y)\)

  • Implicit: \(F(x, y, z) = 0\)

  • Paraméteres: \(\textbf{s}: \mathbb{R}^2 \rightarrow \mathbb{R}^3\)

\(\rhd\) Vizsgáljuk meg a félgömb leírási módjait mindhárom esetben!

\(\rhd\) Vizsgáljuk meg, hogy milyen esetekben és módon térhetünk át egyik leírási módról a másikra!

6.1.1. Explicit felületek

Az interpolációs görbékhez hasonlóan adódik a lehetőség, hogy keressünk olyan kétváltozós függvényeket, amelyek az adott (interpolációs) pontokon átmennek.

A felületek előállítására vonatkozóan példaként tekintsünk egy nagyon egyszerű módszert!

Tegyük fel, hogy adottak az \((x_0, y_0, z_0), (x_1, y_1, z_1), \ldots, (x_n, y_n, z_n)\) pontok a térben! Feltételezzük, hogy nincs olyan közöttük, hogy azonos \(x\) értékhez különböző \(z\) érték tartozna, hasonlóképpen \(y\) esetében is!

Oldjuk meg az interpolációs problémát a \((x_0, z_0), (x_1, z_1), \ldots, (x_n, z_n)\) pontokra! Jelölje ezt az interpolációs függvényt \(f_x(x, z)\)! Ezzel \(y\)-tól függetlenül kaphatunk egy (vonal)felületet.

Hasonlóképpen oldjuk meg az interpolációt a \((y_0, z_0), (y_1, z_1), \ldots, (y_n, z_n)\) pontokra, amely \(x\)-től függetlenül ad egy felületet.

Mindkét felület áthalad az interpolációs pontokon az adott tengelyek irányából, az átlagukként kapott felület pedig teljesíteni fogja az interpolációs probléma kritériumait.

Megjegyzés

Már a külön irányok figyelembevételével előállított felületek is teljesítik az interpoláció feltételeit.

6.1.2. Paraméteres felületek

Tekintsünk egy \(G \subseteq \mathbb{R}^2\) tartományt. Az

\[\begin{split}\textbf{s}(u, v) = \begin{bmatrix} r_x(u, v) \\ r_y(u, v) \\ r_z(u, v) \\ \end{bmatrix}, (u, v) \in G\end{split}\]

kétparaméteres vektorfüggvény által meghatározott ponthalmazt (differenciálgeometriai értelemben) felületnek nevezünk, hogy ha:

  • \(\textbf{s}(u, v)\) kölcsönösen egyértelmű, mindkét irányba folytonos,

  • a \(G\) tartomány minden pontjában folytonosan differenciálható,

  • a \(\dfrac{\partial}{\partial u}\textbf{s}(u, v)\) és \(\dfrac{\partial}{\partial v}\textbf{s}(u, v)\) vektorok lineárisan függetlenek bármilyen \((u, v) \in G\) esetén.

6.2. Jellemzők

A görbékhez hasonlóan a felületekhez is meghatározhatunk a felület adott pontjához rendelhető jellemzőket. Ezeket részletezik a következő szakaszok.

6.2.1. Érintősík

Tekintsük az \(\textbf{s}(u, v)\) felület egy tetszőleges pontját! Az ezen a ponton áthaladó felületi görbék érintői a közös pontban egy síkban vannak. Ezt nevezzük érintősíknak.

Tekintsük az \(u\) és \(v\) paraméterekhez tartozó paramétervonalakat! Az ezekhez tartozó érintőket az alábbi formában számolhatjuk ki:

\[\textbf{s}_u (u, v) = \dfrac{\partial}{\partial u}\textbf{s}(u, v), \quad \textbf{s}_v (u, v) = \dfrac{\partial}{\partial v}\textbf{s}(u, v).\]

Válasszunk ki a felületen egy \(\textbf{r}(t) = \textbf{s}(u(t), v(t))\) görbét! Mivel

\[\dfrac{\mathrm{d}}{\mathrm{d}t}\textbf{r}(t) = \dfrac{\mathrm{d}}{\mathrm{d}t}\textbf{s}(u(t), v(t)) = \dfrac{\partial}{\partial u}\textbf{s}(u, v)\dfrac{\mathrm{d}}{\mathrm{d}t}u(t) + \dfrac{\partial}{\partial v}\textbf{s}(u, v)\dfrac{\mathrm{d}}{\mathrm{d}t}v(t)\]

alakban kifejezhető, ezért bármilyen pontbeli érintőegyenes az \(\textbf{s}_u\) és \(\textbf{s}_v\) vektorok lineáris kombinációjaként felírható, vagyis az azok által kifeszített síkban van.

6.2.2. Normálvektor

Az érintősíkra merőleges vektort normálvektornak nevezzük, és az

\[\textbf{s}_u(u, v) \times \textbf{s}_v(u, v)\]

formában számolhatjuk. Ennek egységnyi hosszúságú változata a felület normálegységvektora:

\[\textbf{n}(u, v) = \dfrac {\textbf{s}_u(u, v) \times \textbf{s}_v(u, v)} {\lVert \textbf{s}_u(u, v) \times \textbf{s}_v(u, v) \rVert}.\]

\(\rhd\) Hogyan tudjuk felírni az érintősík (normálvektoros) egyenletét?

6.2.3. Twist-vektor

Az \(\textbf{s}\) felület \(\textbf{s}(u, v)\) pontjához tartozó

\[\dfrac{\partial^2}{\partial v \partial u}\textbf{s}(u, v)\]

vegyes másodrendű parciális deriváltját (mint vektort) a felület twist-vektorának nevezzük.

6.3. Vonalfelületek

Vonalfelületnek nevezzük az olyan felületet, amely bármely pontján illeszkedik a felületre egy egyenes. Ezeket az egyeneseket alkotóknak nevezzük.

Egy lehetséges felírási módjuk például:

\[\textbf{s}(u, v) = \textbf{r}(u) + v \textbf{e}(u), \quad u \in [u_0, u_1], v \in [v_0, v_1],\]

ahol

  • \(\textbf{r}\): tetszőleges térgörbe,

  • \(\textbf{e}\): egy \(\mathbb{R} \rightarrow \mathbb{R}^3\) vektor értékű függvény, amely az alkotók irányát adja.

Két, azonos paraméterezésű görbe, azonos pontjaihoz tartozó pontjainak konvex kombinációival (más szóval a pontokat összekötő szakaszokkal) szintén felületet kapunk:

\[\textbf{s}(u, v) = (1 - v)\textbf{r}_1(u) + v\textbf{r}_2(u), \quad v \in [0, 1], u \in [u_0, u_1].\]

(Ezt tekinthetjük/nevezhetjük a két görbe lineáris interpolációjának.)

6.4. Mozgó görbe által súrolt felület

Tekintsünk egy tetszőleges \(\textbf{r}(u), u \in [u_0, u_1]\) térgörbét!

  • Feltételezzük, hogy homogén koordinátarendszerben vagyunk, vagyis a térbeli transzformációk megadásához \(4 \times 4\)-es mátrixok szükségesek!

  • Definiáljunk egyet a \(v \in [v_0, v_1]\) paraméter függvényében az \(M(v) \in \mathbb{R}^{4 \times 4}\) formában! (Feltételezzük továbbá, hogy a mátrix értékei a \(v\) paraméter függvényében folytonosan változnak.)

Ezek segítségével definiálni tudunk felületeket a

\[\textbf{s}(u, v) = \textbf{M}(v) \cdot \textbf{r}(u), \quad u \in [u_0, u_1], v \in [v_0, v_1]\]

alakban.

6.5. Tenzori szorzatként előállított felületek

  • A térgörbék megadásához használhatunk (a görbe típusának megfelelően) interpolációs vagy kontrollpontokat.

  • Megtehetjük, hogy ezeket egy másik paraméter segítségével szintén görbék mentén mozgatjuk. A kontrollpontokhoz tartozó görbéket pályagörbéknek hívjuk.

  • A pályagörbe szintén lehet kontrollpontokkal megadott görbe.

Legyenek adottak a

  • \(\{\textbf{c}_i\}_{i=0}^n\) kontrollpontok, és

  • az ezekhez tartozó \(\{F_i(u): u \in [u_0, u_1]\}_{i=0}^n\) bázisfüggvények!

Egy görbét ezek segítségével az

\[\textbf{r}(u) = \sum_{i=0}^n \textbf{c}_i F_i(u), \quad u \in [u_0, u_1]\]

alakban írhatunk föl.

A kontrollpontok „mozgatásához” hasonlóképpen adjunk meg egy bázisfüggvénnyel felírható térgörbét, amely így viszont már a \(\textbf{c}_i\) kontrollpontot fogja meghatározni a \(v\) paraméter függvényében. Az ehhez tartozó \(\{\textbf{a}_{i,j}\}_{j=0}^m\) kontrollpontok szintén az \(i\) függvényében írhatók fel. A kontrollpontok tehát a

\[\textbf{c}_i(v) = \sum_{j=0}^m \textbf{a}_{i,j}G_j(v), \quad v \in [v_0, v_1], i = 0, 1, \ldots, n\]

formában lesznek meghatározhatók.

Visszahelyettesítve az \(\textbf{r}(u)\) görbe felírásába:

\[\begin{split}\begin{align} \textbf{s}(u, v) &= \sum_{i=0}^n \left( \sum_{j=0}^m \textbf{a}_{i,j}G_j(v) \right) F_i(u) \\ &= \sum_{i=0}^n \sum_{j=0}^m \textbf{a}_{i,j} F_i(u) G_j(v), \end{align}\end{split}\]

ahol \(u \in [u_0, u_1], v \in [v_0, v_1]\).

A felületek ezen előállítási módját nevezzük tenzori szorzatként való előállításnak.

  • Az \([a_ij]_{i=0,j=0}^{n,m}\) pontokat kontrollpontoknak,

  • az ezekből létrejövő hálót kontrollhálónak nevezzük.

6.6. Kérdések

  • Milyen módokon írhatunk le felületeket (matematikai megközelítésben)?

  • Differenciálgeometriai értelemben hogyan definiálunk egy felületet?

  • Írja le a paraméteres felületek gyakran használt pontbeli jellemzőit!

  • Mit nevezünk vonalfelületeknek?

  • Hogyan írhatunk fel mozgó görbe által súrolt felületeket?

  • Mutassa be a tenzori szorzatként előállított felületek származtatási módját!

6.7. Számítási feladatok

Adott egy felület paraméteres (vagy explicit) alakban. (Explicit esetén írja fel a paraméteres alakot!)

  • Határozza meg a felület egy pontját az :math`(u, v)` paraméterértéknél!

  • Számítsa ki a pontbeli normálvektort!

  • Írja fel a ponthoz tartozó érintőfelület egyenletét!

  • Határozza meg a twist vektort!

6.8. Programozási feladatok

6.8.1. Explicit felületek vizsgálata

Tekintsük az \(f(x, y) = x^3+(x-2)^2+(y+1)^3-(y+2)^2\) explicit alakban megadott függvényt!

  • Ábrázoljuk a felületet az \((x, y) \in [-5, 5]^2\) tartomány felett (például ennek a segítségével: https://academo.org/demos/3d-surface-plotter)!

  • Határozzuk meg a felület normálvektorát és érintőfelületét az \((1, 2)\) pontban!

6.8.2. Felületek tulajdonságainak vizsgálata

Készítsünk egy programot, amellyel paraméteres felületeket tudunk megjeleníteni egy rögzített tartomány felett!

  • Törekedjünk arra, hogy fények használatával, színekkel a megjelenítés minél szemléletesebb legyen!

  • Oldjuk meg, hogy egy adott \((u, v)\) paraméter esetén megjelenítésre kerüljön a felületi pont, a paramétervonalak, a felületi normálvektor!

6.9. További feladatok

  • Vizsgáljuk meg, hogy hogyan általánosítható a Bézier görbe töröttvonalas közelítése Bézier görbékből létrehozott tenzori szorzat felületekre!