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
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:
Válasszunk ki a felületen egy \(\textbf{r}(t) = \textbf{s}(u(t), v(t))\) görbét! Mivel
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
formában számolhatjuk. Ennek egységnyi hosszúságú változata a felület normálegységvektora:
\(\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ó
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:
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:
(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
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
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
formában lesznek meghatározhatók.
Visszahelyettesítve az \(\textbf{r}(u)\) görbe felírásába:
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!