Játékgeometria. * Hat lecke játékfejlesztőknek oktatási segédanyag, mely a

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Játékgeometria. * Hat lecke játékfejlesztőknek oktatási segédanyag, mely a"

Átírás

1 * Hat lecke játékfejlesztőknek oktatási segédanyag, mely a Társadalmi Megújulás Operatív Program Határon átnyúló együttműködés a szakképzés és a felnőttképzés területén c. pályázati felhívás keretében megvalósított Mobil alkalmazásfejlesztés az informatikai tudás innovatív alkalmazásával című, TÁMOP / kódszámú projekt keretében valósult meg. 2013

2 TA RTA L O M J E G Y Z É K Bevezetés 4 1. vektorok és mátrixok Vektorok Mátrixok Lineáris leképezések Lineáris egyenletrendszer megoldása alakzatok megadása Pont Egyenes, félegyenes, szakasz paraméterezése Egyenes és sík egyenlete Dobozok Sík és háromszög paraméteres előállítása geometriai algoritmusok Pont lokalizációja Véges sok síkbeli pont konvex burkának keresése alakzatok metszése Síkok metszése Egyenes és sík kölcsönös helyzete és kapcsolódó problémák Doboz-egyenes metszés lineáris transzformációk Egyenestartó transzformációk mátrix alakja Tükrözés Pont körüli forgatás síkban Egyenes körüli elforgatás a térben Vetítés és a szelekció probléma távolságok kiszámítása és ütközések detektálása Pont és sík távolsága Pont és egyenes távolsága Két egyenes távolsága Doboz és sík távolsága Gömb távolsága doboztól Doboz távolsága doboztól Mozgó gömbök ütközése 59 2

3 3 Irodalomjegyzék 61 Jelmagyarázat 63 Tárgymutató 63

4 B E V E Z E T É S A matematika a játékprogramozó legfontosabb fejlesztő eszközei közé tartozik. Ha a játékfejlesztőnek nincsenek bizonyos matematikai területeken biztos ismeretei, akkor napokat vesztegethet el olyan problémák programozásával, amelyek megoldása megfelelő matematikai tudással olyan egyszerű, mint az 1 1. Ez a jegyzetet játékfejlesztőknek készül, nem matematikusoknak. Két véglet között szeretném megtalálni a megfelelő középutat: a legszigorúbb absztrakt matematikai felépítés és a plug-and-play típusú receptgyűjtemény között. Ha csak plug-and-play recepteket ismerünk, és nem látunk a recept mögé, aligha tudunk új problémát önállóan hatékonyan megoldani, vagy akár csak a receptet saját problémánkra hatékonyan adaptálni. Milyen matematikai ismeret szükséges a játékfejlesztőnek? Ennek pontos meghatározása nyilván lehetetlen, jelen jegyzet anyagát pedig erős terjedelmi korlátok is befolyásolják. Legelőször is az szükséges, hogy biztos fogalmi alapunk legyen vektorokról és mátrixokról. Az olvasó nyilván tanult már lineáris algebrát, az 1. fejezetben leírt anyagot próbáltam a játékfejlesztő programozó szemüvegén keresztül megfogalmazni, az anyagba már itt is beleszőve néhány gyakorlati problémát. Sokszor magam is rádöbbenek, hogy a matematikusok és a programozók a lineáris algebrát mennyivel másképpen látják. A kedvenc olvasmányom a programozók szemével a [GVL13] klasszikus, amely mint ajánlott olvasmány is szerepel a javaslataim között. Másodjára a geometriai algoritmusokat (geometriai programozást) emelem ki. A geometriai programozás az a terület, amely a geometriai problémák számítógépi kezelésével foglalkozik. Tipikus problémája pl. az, hogy adott pontról döntsük el, hogy egy alakzathoz tartozik-e vagy sem, vagy két téglatest a térben diszjunkt-e vagy sem. A jegyzet fő profilja a geometriai programozás elemeibe betekintést adni, így tárgyaljuk a következőeket: alakzatok reprezentálása és metszete (2. és 4. fejezet) tartalmazás vizsgálata (3. fejezet.) ütközés vizsgálata (6. fejezet) konvex burok keresés (3. fejezet.). A geometriai programozás nem csak a problémák megoldásainak algoritmusaival, hanem az algoritmusok vizsgálatával és adatstruktúrák elemzésével is foglalkozik, ebben a jegyzetben ezt nem tekintjük célnak. Az ajánlott olvasnivaló: [PS85, Sza03], de bátorítom az olvasót arra is, hogy a geometriai 4

5 5 algoritmusok kereső szóval indítson keresést, s különböző akadémiai, egyetemi oldalakon kiváló magyar nyelvű olvasnivalókat is találunk egyes részproblémákról. A lineáris transzformációk (ezen belül a geometriai transzformációk és a vetítések) ismerete gyakorlatilag a számítógépi geometria minden területén előjön, így a játékprogramozásban is. Az 5. fejezet fedi le ezt a témát. Az irodalom szinte kimeríthetetlen, én egy régi klasszikushoz, [RA90]-hez ragaszkodom. Végezetül néhány olyan terület, amely fontos a játékfejlesztőnek, de itt nem érintjük. Elemi algebra, trigonometria és kalkulus. A szükséges algebrai és trigonometriai ismeretek ritkán haladják meg az (emelt) középiskolás szintet, talán csak a komplex számokkal és a kvaterniókkal való bánás jelenthet újat. A kalkulus (lényegében: differenciál és integrálszámítás elemei, kitekintéssel a differenciálegyenletekre) minden matematika alkalmazónak alapvető bevezető kurzusa. Szeretnék ehhez egy olyan jegyzetet ajánlani, amely megközelítésében a programozóknak minden bizonnyal tetszeni fog: [Bla11]. Majdnem mindig, amikor különböző matematikai problémákat (pl. egyenletek megoldása, differenciálegyenletek megoldása, differenciálás, stb.) számítógéppel kezelünk, numerikus módszereket alkalmazunk. Ezek ismerete a játékfejlesztésben is fontos lehet. A jegyzetben ezzel a fejezettel nem foglalkozunk, a [PTVF07] könyvben az olvasó kiváló összefoglalót kap a témából. A szabad formájú görbék és felületek modellezésének ismerete minden kétséget kizáróan a játékprogramozó eszköztárába tartozik. Ebben a jegyzetben erről nem lesz szó, a [Kov11] jegyzetben ezt a témát bevezető szinten feldolgoztam, ott további hivatkozásokat is találunk. Az alakzatok mozgását sokszor fizikai elvek alapján írjuk le, így a fizika és ezen belül a szimulációk elmélete és gyakorlata is kiemelt terület, amelyhez szorosan kapcsolódik a statisztika is. A jegyzet megírásához használtam még a fentieken kívül a [Tre04] könyvet. [Fol96] ebben a témában is megkerülhetetlen. Az interneten elérhető források közül jó kiindulópont az Essential Math for Game Programmers oldal. Ezzel a címmel konferenciákat tartanak, honlapot működtetnek (link), ahonnan hasznos anyagokat érünk el ingyenesen. A jegyzet ábráinak egy részét (a 2D ábrákat) GeoGebra-val készítettem, tikz exporttal (link). Más ábrák (ezek a 3D ábrák) az Asymptote programmal készültek (link). A pszeudokódok olvasásához felhívom a figyelmet arra, hogy az összetartozó programrészek behúzással vannak jelölve, tehát end utasítást nem használok. Végezetül hálásan megköszönöm a lektornak az értékes észrevételeit, amelyek lényegesen javították a tananyag érthetőségét.

6 1 V E K T O R O K É S M ÁT R I X O K Ebben a részben a későbbi alkalmazások igényeinek megfelelően röviden áttekintjük a vektorokról és mátrixokról tanultakat, elsősorban a jelölések egyértelműsítése, no meg az újrakezdők kedvéért. 1.1 vektorok Vektor alatt egy programozó egydimenziós tömböt ért, ebben a jegyzetben mi ugyanebben az értelemben használjuk a vektor szót, csak geometriai elnevezést alkalmazunk. n dimenziós vektorként ebben a jegyzetben a valós rendezett szám n-eseket említjük, azaz R n elemeit. Ugyanakkor R 2 geometriai szempontból a sík egy modellje, R 3 pedig a tér egy modellje, tehát R n elemeit lehet pontoknak és vektoroknak egyaránt nevezni. Ezért jelölésben sem teszünk mindig különbséget pontok és vektorok között, de ha hangsúlyozottan pontra gondolunk, akkor nagy betűkkel (X R n ), míg ha vektorra, akkor kis betűkkel (x R n ) jelöljük az elemeket. A vektorokat tipográfiailag nem fogom aláhúzással jelölni, vagy félkövérrel szedni. (Ha programot írunk akkor sem használjuk ezeket a megkülönböztetéseket.) A programozó valószínűleg az x vektor i-edik komponensére az x(i) vagy x[i] jelölést szereti, mi megtartjuk a matematikusok által gyakrabban használt x i jelölést. Ebben a tananyagban a vektor első komponensét 0 indexszel jelölöm, ahogy a nagyon sok programozási nyelvben ez szokásos. Tehát, ha x R n, akkor x = (x 0,..., x n 1 ). Jól ismert, hogy R n -ben tudunk összeadni, a műveletet komponensenként elvégezve, s erre az összeadásra R n kommutatív csoport, ami azt jelenti, hogy a struktúra ugyanolyan tulajdonságokkal rendelkezik, mint a valós számok összeadás struktúrája. A csoport zéruselemét 0-val jelölöm, ha hangsúlyozottan vektorra gondolok, míg O-val, ha pontra. Ez utóbbit origónak is szokás mondani. Ebben a fejezetben a ponttól bonyolultabb geometriai struktúráról nem is lesz szó, a 2. részben ezt a hiányt pótoljuk. Az összeadás segítségével egy geometriai transzformációt értelmezhetünk. Legyem v R n rögzített vektor. A leképezés R n eltolása. T v : R n R n, X T v (X) = X + v 6

7 7 X = C + λ(x C) X C 1. ábra. Középpontos nyújtás R n elemeit számokkal is lehet szorozni (ez a szám-vektor szorzás), a szorzást komponensenként elvégezve. Ennek az R R n R n leképezésnek egyszerű tulajdonságai: α (x + y) = α x + α y (α + β) x = α x + β x (αβ) x = α(β x) 1 x = x, ahol x, y tetszőleges vektorok, α, β pedig tetszőleges valós számok. Az összeadás és a szám-vektor szorzás segítségével a középpontos nyújtást értelmezhetjük. Legyen C R n rögzített pont, λ = 0 rögzített valós szám. A h(c, λ) : R n R n, X C + λ(x C) (1.1) transzformáció a C középpontú λ arányú középpontos nyújtás (ld. 1. ábra). Az előbbiek mellett R n -t az teszi hasznossá a számítógépi alkalmazások számára, hogy van benne egy ún. skaláris szorzás, melyet a vektorok megfelelő komponensei szorzatának összegével értelmezünk. Matematikailag x y = n 1 x i y i. (1.2) i=0 Itt x = (x 0, x 1,..., x n 1 ) R n, y = (y 0, y 1,..., y n 1 ) R n. A skaláris szorzás jelét tipográfiailag jól megkülönböztetem a számok szorzásától, vagy a szám-vektor szorzástól. A programozó számára a skaláris szorzás az alábbi algoritmust jelenti: A skaláris szorzás egyik alkalmazása, hogy segítségével kiszámíthatjuk egy vektor hosszát: x = x x, x R n, (1.3)

8 8 Algoritmus 1.1 Skaláris szorzás Input: x, y Output: x y d 0 for i = 0 to n 1 do d d + x i y i vagy két pont távolságát: d(p, Q) = P Q = (Q P) (Q P), P, Q R n. Az (1.3) képletben a jobb oldalon gyökvonás van, amelyet a különböző algoritmusokban igyekszünk elkerülni, ezért ha csak lehet, az összefüggést használjuk. Két (nem zéró) vektor szöge x 2 = x x cos (x, y) = x y x y, alapján értelmezhető ahol a szög a [0, π] intervallumban van. Ebben az intervallumban a cos függvény invertálható, így a szög egyértelműen definiált. 1 Három dimenzióban van még egy vektor művelet, amelynek többször gyakorlati hasznát vesszük még, ez a vektoriális szorzás. Az a, b R 3 vektorok a b-vel jelölt vektoriális szorzata egy olyan a-ra és b-re is merőleges vektor, melynek hosszára fennáll, hogy a b 2 = a 2 b 2 (a b) 2. (1.4) (1.4)-ből látjuk, hogy a b zérusvektor, ha a és b párhuzamosak. Ha a és b nem párhuzamosak, akkor (1.4) és a merőlegességi feltétel még nem határozza meg a b-t egyértelműen, hiszen adott hosszúságú, adott síkra merőleges vektor (a sík most az a és b által kifeszített sík) kettő is van, a vektor a sík mindkéz oldala felé mutathat. Megkötjük tehát, hogy (a, b, a b jobbrendszert alkosson, azaz olyan sorrendben kövessék egymást a vektorok, mint a jobb kéz hüvelyk, mutató és középső ujja, ha a középső ujjat a tenyérre merőlegesn tartjuk, a másik két ujjat pedig a tenyér síkjában. Ha a = (a 0, a 1, a 2 ) és b = (b 0, b 1, b 2 ), akkor a b = (a 1 b 2 a 2 b 1, a 2 b 0 a 0 b 2, a 0 b 1 a 1 b 0 ). 1 A figyelmes olvasó elgondolkodhat azon, hogy a jobb oldalon miért szerepel egészen biztosan 0 és 1 közötti szám. Ez a Cauchy-Schwarz egyenlőtlenség közvetlen következménye: x 2 y 2 (x y) 2.

9 9 2. ábra. Vektoriális szorzás (1.4)-nek van egy fontos geometriai tartalma: a b megegyezik az a és b által kifeszített paralelogramma területével. (Ld. 2. ábra) 1.2 mátrixok A vektorokat nem csak egy dimenziós tömbben, hanem összetettebb adattípusban, két dimenziós tömbben is fel lehet írni. Ha egy m n dimenziós vektor komponenseit m sorba és n oszlopba rendezzük el, akkor egy m n típusú mátrixot kapunk. Jelölésben az összes m n típusú mátrixok halmazára az R m n jelölést alkalmazom: A R m n A = (a ij ) = a 00 a 0,(n 1).. a (m 1),0 a (m 1),(n 1) A jelölés kifejezi azt, hogy az m n típusú mátrix mint m n dimenziós vektor tárolható, ahol a vektorban a mátrix elemeit soronként írjuk be. Pl. az ( ) a b c d mátrix tárolása történhet a (a, b, c, d) vektorral. Ha a példa alapján gondolkodunk, akkor rögtön megértjük, hogy miért nem teszünk különbséget az x R n vektor, az x R n 1 oszlopvektor, vagy R 1 n sorvektor között.

10 10 Azonos típusú mátrixok összeadását és egy mátrix skalárral való szorzását komponensenként végezzük el. (Ekkor a mátrixot lényegében vektornak tekintjük.) Speciális mátrix művelet a transzponálás, amely egy R m n R n m leképezés: C = A t c ij = a ji A négyzetes mátrixok transzponálása az alábbi (optimalizált) algoritmussal elvégezhető: Algoritmus 1.2 Transzponálás Input: (a(i, j)) Output: (a(i, j)) t for i = 0 to n 2 do for k = i + 1 to n 1 do swap a(i, k) with a(k, i) A mátrixok szorzása: C = AB c ij = r 1 a ik b kj, k=0 ahol A R m p, B R p n, C R m n. A C mátrix i-edik sorának j-edik eleme megegyezik A i-edik sorának és B j-edik oszlopának skaláris szorzatával. Speciálisan, legyen A R m n, x R n = R n 1, y R m. A sorait jelölje A 0,..., A m 1. Az 1.3. algoritmus adja meg az Ax + y (y = 0 esetén speciálisan Ax) kiszámítását. Algoritmus 1.3 Mátrix-vektor szorzás Input: A = (A 0,..., A m 1 ), x, y Output: y Ax + y for i = 0 to m 1 do y i A i x + y i A mátrix-mátrix szorzás mindig visszavezethető mátrix-vektor szorzásra, így az előbbi algoritmust megfelelő ciklusban alkalmazva a mátrix-mátrix szorzást is megkapjuk. A négyzetes mátrix determinánsának általános fogalmát és a kiszámításának különböző algoritmusait nem tekintjük át, mert csak 2 2, illetve 3 3 típusú mátrixok determinánsára lesz szükségünk, s ezeket egyszerűen megadhatjuk. ( ) a b det = c d a b c d = ad bc, a 00 a 01 a 02 a 10 a 11 a 12 a 20 a 21 a 22 = a 00 a 11 a 12 a 21 a 22 a 01 a 10 a 12 a 20 a 22 + a 02 a 10 a 11 a 20 a 21.

11 11 3. ábra. A körüljárási irány eldöntése A 3 3 típusú mátrixok determinánsának egyik geometriai alkalmazása a vektorok vegyes szorzata. Ha a, b, c R 3 vektorok, akkor Kiszámítása a, b, c = (a b) c. (1.5) a 0 a 1 a 2 a, b, c = b 0 b 1 b 2 c 0 c 1 c 2. Geometriailag a, b, c az a, b, c által kifeszített paralelepipedon előjeles térfogata, ahol az előjel aszerint pozitív, vagy negatív, hogy (a, b, c) jobbrendszert, vagy balrendszert alkot. Egysíkú vektorok esetén a vegyes szorzat értéke nulla. Bár a konstrukció térbeli, mégis egy síkbeli probléma megoldására ad egyszerű segédeszközt a vegyes szorzat. A kérdés, hogy az adott ABC háromszög (A, B, C R 2 ) csúcsai az óramutató járásával megegyező (negatív), vagy ellentétes (pozitív) körüljárást eredményeznek-e. Az ABC háromszög előjeles területe legyen t. t > 0, ha ABC pozitív körüljárási irányú, t < 0 ellentétes esetben. Az ABC háromszög az xy síkban van, toljuk el a z = 1 síkba (ld. 3. ábra). Az új csúcsok: a = (a 0, a 1, 1), b = (b 0, b 1, 1), c = (c 0, c 1, 1). (a, b, c) pontosan akkor jobbrendszer, ha az ABC háromszög pozitív körüljárású. Az (Oabc) tetraéder előjeles térfogata 3 1 t, és ez a térfogat az (a, b, c) által kifeszített paralelepipedon térfogatának hatoda. Így 2t = a, b, c és

12 12 a, b, c > 0 esetén az ABC háromszög pozitív körbejárású. Determinánssal felírva t = 1 a 0 a b 0 b 1 1 c 0 c 1 1. (1.6) Rögzített n-re az n n típusú nem zéró determinánsú mátrixok algebrai értelemben csoportot alkotnak: két ilyen mátrix szorzata szintén nem zéró determinánsú mátrix lesz, a szorzás asszociatív, van egységelem (az egységmátrix) és minden elemnek van inverze. Az n n típusú, I-vel jelölt egységmatrix elemeire: { 1 ha i = j a ij = 0 ha i = j. Az A négyzetes mátrix inverze az a A 1 -el jelölt, A-val azonos típusú mátrix, melyre AA 1 = A 1 A = I. Lineáris algebrai tanulmányainkból tudjuk, hogy egy négyzetes mátrix akkor és csakis akkor invertálható, ha determinánsa nem zérus. Az n n típusú invertálható mátrixok csoportját (melyet R n általános lineáris csoportjának is nevezünk) GL(n) jelöli: GL(n) = {A R n n det A = 0}. A mátrix aritmetika témaköréből utoljára mátrixok inverzének meghatározásával foglalkozunk. Ismét csak a 2 2, illetve 3 3 típusú mátrixokkal foglalkozunk. Behelyettesítéssel egyszerűen ellenőrizhető, hogy ( ) 1 a b = c d 1 ad bc ( ) ( ) d b a b, GL(2). c a c d A jobb oldalon a tört nevezőjében pontosan az invertálandó mátrix determinánsa van, amiről feltettük, hogy nem zéró. A 3 3-as esetben legyen A = (a ij ), det A = 0. A 1 = 1 a 11 a 22 a 12 a 21 a 02 a 21 a 01 a 22 a 01 a 12 a 02 a 11 a det A 12 a 20 a 00 a 22 a 00 a 22 a 02 a 20 a 02 a 10 a 00 a 12. a 10 a 21 a 11 a 20 a 01 a 20 a 00 a 21 a 00 a 11 a 01 a lineáris leképezések A mátrix-vektor szorzás (vektort szorzunk balról mátrixszal) a vektoroknak mindig lineáris transzformációját adja. Ez alatt azt értjük, hogy ha A R m n, x R n, akkor L A : R n R m, x L A (x) = Ax

13 13 x x cos α w α w 4. ábra. Merőleges vetítés, w = 1 lineáris leképezés, azaz A(x + y) = Ax + Ay A(αx) = αax teljesül minden x, y R n vektorra és α R skalárra. A továbbiakban három fontos példát adunk lineáris leképezésre. Legyen 0 = w R n, és tekintsük a következő leképezést: R n R n, x p w (x) = (x w) w. Ha w egységvektor, akkor p w (x) megadja az x vektor w irányú merőleges vetületét (ld. 4. ábra). (x w előjele aszerint pozitív, vagy negatív, hogy a vetület w irányába mutat, vagy azzal ellentétes.) Mivel a leképezés lineáris, biztosan megadható egy n n típusú mátrixszal történő balszorzással. Valóban, könnyű ellenőrizni, hogy p w (x) = ww t x. (1.7) Ha a térben vagyunk, és w = (a, b, c), akkor a ww t mátrix a a 2 ab ac b (a, b, c) = ba b 2 bc. c ca cb c 2 Mivel az eddigiekben feltételeztük, hogy w egységvektor, az eredményül kapott vetítési mátrix főátlójában a mátrix elemek összege 1. (Emellett a mátrix szimmetrikus is!) Nem okoz különösebb nehézséget a vetítési mátrix felírása akkor sem, ha w nem egységvektor. Ekkor először w-t normálni kell, és az így kapott

14 14 w/ w vektorra kell az előző formulákat alkalmazni. Célszerű, ha a normálást (a kellemetlen gyökvonás miatt) nem is végezzük el, hanem w/ w -t beírjuk (1.7)-be, így az x vetületre azt kapjuk, hogy tehát a vetítési mátrix általánosan x = 1 w 2 wwt x, Ne felejtsük el, hogy (1.8)-ban w oszlopvektor. A második példa az előző példán alapul. Az 1 w 2 wwt = wwt w t w. (1.8) R n R n, x x p w (x) = x (x w) w (1.9) leképezés geometriai tartalma világos: ha w egységvektor, akkor x (x w) w megadja az x vektor w irányára merőleges komponensét. Ugyanezt mátrix szorzással (1.7) alapján könnyen felírhatjuk: x (I ww t )x, (1.10) ahol a képletben I az n n típusú egységmátrix. Az utolsó példánk csak a térben érvényes. Legyen w = (a, b, c) R 3. Az R n R n, x w x leképezés szintén lineáris leképezés, azaz egy 3 3 típusú mátrixszal történő balszorzással megadható. Valóban, egyszerű számítással ellenőrizhetjük, hogy 0 c b w x = c 0 a b a 0 x 1 x 2 x 3. (1.11) 1.4 lineáris egyenletrendszer megoldása Ha A R n n egy négyzetes mátrix, b R n vektor, akkor az Ax = p egy lineáris egyenletrendszer az ismeretlen x R n vektorra. Gyakran lesz szükségünk ( ) egy ilyen egyenletrendszer megoldására, ha n = 2. Legyen A = a b, p = (p c d 0, p 1 ). Ha det A = 0, akkor a megoldást az ún. Cramerszabállyal kapjuk: b p 0 p 1 x 0 = a c d b d = p 0d bp 1 ad bc, x 1 = a p 0 c p 1 a b c d = ap 1 p 0 c ad bc.

15 15 3 egyenletre és három ismeretlenre a Cramer-szabály hasonlóan alkalmazható. Az A GL(3) mátrix oszlopai legyenek (A 0, A 1, A 2 ), B R 3, az ismeretlenek X = (x 0, x 1, x 2 ). A lineáris egyenletrendszert tömören az (A 0, A 1, A 2 )X = B alakban írhatjuk. Mivel A invertálható, ezért ez az egyenletrendszer egyértelműen megoldható, és a megoldás: x 0 = B, A 1, A 2 A 0, A 1, A 2, x 1 = A 0, B, A 2 A 0, A 1, A 2, x 0 = A 0, A 1, B A 0, A 1, A 2. Mindhárom nevezőben az A mátrix determinánsa szerepel.

16 2 A L A K Z AT O K M E G A D Á S A A számítógépi grafikában a bonyolultabb alakzatokat gyakran célszerű egyszerű, elemi alakzatokra bontani, illetve azokkal modellezni. Az 5. ábrán a gömböt háromszögekkel modelleztük, ez segített a láthatóság és árnyékolás problémájának megoldásához. Ebben a fejezetben a pontok, az egyeneses és szakaszok, a síkok és háromszöglemezek, a félsíkok, sávok és dobozok, továbbá a konvex sokszöglemezek megadásával és ezek metszéseivel foglalkozunk. (Sáv alatt a síkban párhuzamos határegyenesű félsíkok metszetét értjük, ha a metszet nem üres, a térben pedig párhuzamos határsíkú félterek metszetét, ha a metszet nem üres. Doboz alatt a síkon téglalapot, a térben téglatestet értünk.) Nagyon gyakran formálisan nincs különbség a síkbeli és a térbeli eset között. Az egyenes paraméteres előállítása a síkban pontosan ugyanazzal a képlettel történik (ld. (2.3)), mint térben, csak a képletben szereplő vektorok az első esetben R 2 elemei (rendezett számpárok), a másik esetben R 3 elemei (rendezett számhármasok). A fontosabb analógiákat soroltuk fel az 1. táblázatban. 2.1 pont A legegyszerűbb 2D/3D alakzat a pont, melyet két/három derékszögű koordinátájával adhatunk meg: P R n (n = 2 vagy 3). sík egyenes paraméterezése egyenes egyenlete félsík egyenlete téglalap tér egyenes paraméterezése sík egyenlete féltér egyenlete téglatest 1. táblázat. Fontosabb sík tér analógiák 16

17 17 5. ábra. A gömböt háromszög lemezekre bontottuk A pont megadásának másik módja, amikor homogén koordinátákat használunk. A P = (x, y) pont homogén koordinátái [x 1, x 2, x 3 ], ha x = x 1 x 3, y = x 2 x 3. (2.1) Figyeljünk a jelölésre, a homogén koordináták esetén szögletes zárójelet használunk, innen tudjuk megkülönböztetni egy térbeli pont Descarteskoordinátáit a síkbeli pont homogén koordinátáitól. Észrevehetjük, hogy egy pont homogén koordinátái nem egyértelműek, ha [x 1, x 2, x 3 ] egy pont homogén koordinátái, akkor az ezzel arányos [λx 1, λx 2, λx 3 ] (λ = 0) is ugyanazt a pontot határozza meg, mert ha [x 1, x 2, x 3 ]-ra teljesül (2.1), akkor [λx 1, λx 2, λx 3 ]-ra is nyilvánvalóan teljesül. Az (x, y) pont legegyszerűbb homogén koordinátái [x, y, 1]. A definícióban szereplő osztás miatt x 3 = 0. A számolásokban mégis megengedjük az x 3 = 0 lehetőséget is. Erről tudni kell, hogy az ilyen [x 1, x 2, 0] hármas nem pontot jelöl, hanem a ( x 2, x 1 ) síkbeli irányt. Mivel az irány meghatározásához nem zéró vektor szükséges, ezért x 1 és x 2 egyszerre nem lehet zéró. A térben a P = (x, y, z) pont homogén koordinátái [x 1, x 2, x 3, x 4 ], ha x = x 1 x 4, y = x 2 x 4, z = x 3 x 4. (2.2) Az arányosságról elmondottak itt is ugyanúgy érvényesek, mint síkban. 2.2 egyenes, félegyenes, szakasz paraméterezése Egy egyenest vagy egy szakaszt geometriailag két pont határoz meg. Ha megadunk két pontot, akkor ezek egyértelműen meghatározzák a rájuk illeszkedő egyenest, vagy azt a szakaszt, amelynek határpontjai éppen az

18 18 adott pontok. Legyenek P 0, P 1 R n a pontok (P 0 = P 1 ) ekkor a rájuk illeszkedő egyenes pontjai (és csakis azok) előállíthatók az alábbi formában X = tp 1 + (1 t)p 0, t R. (2.3) A (2.3) képletet úgy kell értelmezni, hogy ha t helyére bármilyen valós számot beírunk, akkor a P 0 P 1 egyenes egy pontját kapjuk, illetve az egyenes minden pontjához találunk ilyen számot. A (2.3)-t könnyen tudjuk értelmezni, ha átalakítjuk: X = tp 1 + (1 t)p 0 = P 0 + t(p 1 P 0 ), t R, azaz a P 0 -ra illeszkedő P 1 P 0 irányvektorú egyenesről van szó. A (2.3) képletet a P 0 P 1 egyenes paraméteres előállításának nevezzük. Ha (2.3)-ben t [0, 1], akkor a P 0 P 1 szakasz pontjait (és csakis azokat) kapjuk meg: X = tp 1 + (1 t)p 0, t [0, 1]. (2.4) t = 0 adja a szakasz P 0 határpontját, míg t = 1 a P 1 határpontot. A 0 < t < 1 számok a szakasz belső pontjai. Ha (2.3)-ben t [0, ), akkor a P 0 P 1 félegyenes pontjait (és csakis azokat) kapjuk meg. 2.3 egyenes és sík egyenlete Az egyenes (2.3) paraméteres előállítása mellett a síkban az egyenes egyenletét is gyakran használjuk. Ehhez az egyenest egy P 0 R 2 pontjával és az egyenesre merőleges (nem zéró) u R 2 vektorral, az egyenes ún. normálvektorával adjuk meg. Vegyük szemügyre a 6. ábrát! Az X pont akkor és csakis akkor illeszkedik a P 0 ponton áthaladó u normálvektorú egyenesre, ha α = π/2, vagy X = P 0, azaz, ha Csak arra kell gondolni, hogy (X P 0 ) u = 0. (2.5) (X P 0 ) u = X P 0 u cos α, (α [0, π]), (2.6) továbbá a [0, π] intervallumban a cos függvény π/2 nél zérus. A (2.5) képletet a P 0 ponton áthaladó u normálvektorú egyenes egyenletének nevezzük. A tömör vektoros formában felírt (2.5) egyenletben azonnal ráismerünk a középiskolában tanult formára. Ha P 0 = (x 0, y 0 ) és u = (A, B), valamint a futó pont X = (x, y), akkor X P 0 = (x x 0, y y 0 ) és a skaláris szorzást elvégezve az alábbi ismerős egyenletet kapjuk: A(x x 0 ) + B(y y 0 ) = 0 Ax + By = Ax 0 + By 0. (2.7)

19 19 X u α P 0 6. ábra. Az egyenes egyenlet Hogyan tárolhatunk a programunkban egy síkbeli egyenest? Ha a paraméteres előállításra gondolunk, akkor négy adat kell hozzá, vagy az egyenes két pontjának két-két Descartes-koordinátája, vagy egy pont és egy irányvektor, azaz ismét négy adat. Ha az egyenes (2.7) egyenletére gondolunk, akkor láthatjuk, hogy elegendő egy rendezett számhármas is, az egyenletben szereplő három szám: A, B és C = (Ax 0 + By 0 ). Az [A, B, C] hármas homogén módon viselkedik, azaz [λa, λb, λc]-vel felírt λax + λby + λc = 0 nyilvánvalóan ugyanannak az egyenesnek az egyenlete, mint amit az [A, B, C] hármas meghatároz. Éppen ezért az [A, B, C] hármast az Ax + By + C = 0 egyenes homogén koordinátáinak nevezik. Mivel (A, B) az egyenes normálvektora, így A és B egyszerre nem zéró. Az [A, B, C] homogén koordinátákkal rendelkező egyenes egy irányvektora ( B, A), így iránya [ B, A, 0]. Homogén koordinátákat használva az alapvető síkbeli illeszkedési és metszési feladatok egyszerűen megoldhatók. Ezek összefoglalásához állapodjunk meg abban, hogy ha X R 2 egy pont, akkor ennek egy homogén koordináta hármasát x R 3 jelöli (azaz ugynannál a pontnál ugyanaz a betű, csak nagy betű kis betű változatban.) illeszkedés A P pont akkor és csakis akkor illeszkedik az u homogén koordinátákkal rendelkező egyenesre, ha p u = 0.

20 20 7. ábra. Sík normálvektora összekötés. A P, Q pontokra illeszkedő egyenes homogén koordinátái p q. metszés. Ha u és v két egyenes homogén koordinátái, akkor metszéspontjuk homogén koordinátái u v. Ha a két egyenes párhuzamos lenne, akkor u v nem pont, hanem irány, a két egyenes közös iránya. párhuzamos húzás. A P pontra illeszkedő, u homogén koordinátákkal rendelkező egyenes homogén koordinátái p ( u 2, u 1, 0), azaz P-t összekötjük az egyenes irányával. A részleteket a gyakorlati feladatok megoldásával látjuk. A (2.5) egyenletnek van egy másik szépsége: változatlan formában érvényes térben is, pontosabban, ha P 0 R 3 tetszőleges pont és u R 3 nem zéró vektor, akkor (2.5) megadja a P 0 pontra illeszkedő, u normálvektorú sík egyenletét. (Egy sík normálvektorán a síkra merőleges nem zéró vektort értjük. Ld. a 7. ábrát!) Ha P 0 = (x 0, y 0, z 0 ) és u = (A, B, C), akkor az előbbiekhez hasonló módon a sík egyenlete: A(x x 0 ) + B(y y 0 ) + C(z z 0 ) = 0.

21 ABCDFGHI Játékgeometria ábra. Doboz előállítása sávok metszeteként Most térjünk vissza a (2.6) egyenlethez! Ha α hegyesszög, azaz cos α > 0, az azt jelenti, hogy X az egyenes (vagy sík) ugyanazon oldalára 1 esik, mint P 0 + u. Így az egyenes (sík) u iránya által meghatározott oldala (beleértve az egyenest/síkot is) {X R n (X P 0 ) u 0}, (2.8) míg az ellentétes oldal {X R n (X P 0 ) u 0}. (2.9) 2.4 dobozok A (2.8) és (2.9) formulák megértése után elérkeztünk a számítógépi alkalmazások egyik legfontosabb alakzatához, a dobozhoz. Doboz alatt a síkban téglalapot, a térben téglatestet értünk. A téglalapot mint egymásra merőleges irányú sávok metszetét fogjuk fel (8. ábra). Hogyan adhatunk meg egy sávot? A sáv középpárhuzamosán vegyünk fel egy tetszőleges pontot, melyet jelöljön C. C-ből a sáv egyik határegyeneséhez mutató merőleges vektor legyen u. (9. ábra.) A (C, u) pár 1 Egy síkbeli egyenes a síkot két félsíkra, a sík a teret két féltérre bontja. Ezeket a (zárt) félsíkokat/féltereket neveztük az egyenes/sík oldalainak.

22 22 u C 9. ábra. Sáv előállítása a sávot meghatározza. Az két határegyenes egy-egy pontja így C ± u, míg mindkét egyenes normálvektora u. A két határegyenes egyenlete tehát (X (C ± u)) u = 0 (X C) u = ± u 2. A sáv maga az (X C) u u 2 félsík és a (X C) u u 2 félsík metszete, azaz azon X pontok halmaza, melyekre u 2 (X C) u u 2 (2.10) teljesül. A téglalapot ezek után megadhatjuk C középpontjával és a fél oldalvektorokkal, azaz a középpontból két szomszédos oldalhoz merőlegesen mutató egymásra merőleges (a, b) vektorpárral. A téglalap csúcsait a C ± a ± b vektorok adják, ahol a + és előjelek minden lehetséges (ismétléses) variációjára szükség van. A téglalap (lemez) pontjai (és csakis azok) pedig eleget tesznek az alábbi relációknak: a 2 (X C) a a 2 b 2 (X C) b b 2. (2.11) Térben minden analóg, a téglatestet a C középpontjával és az egymásra páronként merőleges fél élvektorokkal adjuk meg. Legyenek ezek (a, b, c).

23 23 Így téglatest csúcsai C ± a ± b ± c, a tömör téglatest pontjai (beleértve a határoló lapokat is) és csakis azok eleget tesznek a a 2 (X C) a a 2 b 2 (X C) b b 2 c 2 (X C) c c 2 (2.12) relációknak. A későbbieken azt is megtanuljuk, hogyan kell eldönteni, hogy egy X 0 pontból X 1 irányban kilőtt lézersugár eltalál-e egy (C, a, b, c) dobozt. 2.5 sík és háromszög paraméteres előállítása Ha megadunk három nem egy egyenesre illeszkedő pontot, akkor ezek egyértelműen meghatározzák azt a síkot, amely mindhárom pontra illeszkedik, illetve azt a háromszög lemezt, amelynek csúcsai az adott pontok. A sík a P 0 pontra illeszkedik, és a P 1 P 0, P 2 P 0 vektorok feszítik ki, azaz ezen vektorok lineáris kombináció adják meg a síkban reprezentálható vektorokat (és csakis azokat). Így a sík pontjaira X = P 0 + s(p 1 P 0 ) + t(p 2 P 0 ), s, t R. (2.13) Ha a (2.13)-ben s, t [0, 1], akkor a P 0 P 1 P 2 háromszög lemez pontjait (és csakis azokat) kapjuk. Rendezzük át a (2.13) előállítás jobb oldalát! X = (1 s t)p 0 + sp 1 + tp 2 (2.14) Ha (P 0, P 1, P 2 ) nem kollineáris rendezett ponthármas, akkor (2.14) alapján megállapíthatjuk, hogy van olyan (α, β, γ) rendezett számhármas, hogy X = αp 0 + βp 1 + γp 2, α + β + γ = 1. (α, β, γ)-t X normált baricentrikus koordinátáinak nevezzük (P 0, P 1, P 2 )-ra vonatkozóan. Ha síkban vagyunk (P i R 2 ), akkor az előző egyenletrendszert megolghatjuk pl. a következő módon. A problémát tömören felírva (homogén koordinátákkal): X = ( P0 P 1 P ) α β = γ ( ) X. 1 Cramer-szabállyal megoldva (ld. 15. oldalt) X P 1 P P 0 X P P 0 P 1 X α = P, β = 0 P 1 P P, γ = 0 P 1 P P. 0 P 1 P

24 24 P 2 t 1 t 0 X t 2 P 0 P ábra. Baricentrikus koordináták: ha a P 0 P 1 P 2 háromszög előjeles területe t, akkor α = t 0 /t, β = t 1 /t, γ = t 2 /t és X = αp 0 + βp 1 + γp 2. (1.6)-ból tudjuk, hogy a fenti megoldásban a számlálókban és a nevezőkben szereplő determinánsoknak egyszerű geometriai jelentése van: megegyeznek a megfelelő háromszög előjeles területének kétszeresével: az X pontot a háromszög csúcsaival összekötve három (esetleg elfajuló) háromszöget kapunk. A részháromszög és az eredeti háromszög területének aránya adja a megfelelő normált baricentrikus koordinátákat (ld. 10. ábra). A (2.13) és (2.3) formulák hasonlítanak abban, hogy a szám együtthatók összege 1. A szakasz és a sík előállítása esetében ráadásul a szám együtthatók mind nem negatívak. Vektorok olyan lineáris kombinációját, melyben az együtthatók összege 1 és az együtthatók nem negatívak, konvex (lineáris) kombinációnak nevezzük. Úgy is fogalmazhatunk, hogy a szakasz a határpontjai összes konvex kombinációinak halmaza, míg a háromszög lemez a csúcsai összes konvex kombinációinak halmaza. Általánosan, ha P 0, P 1,..., P n egy pontsorozat, akkor a pontok összes konvex kombinációi { X = n α i P i, α i 0, i=0 } n α i = 1, i=0 a P 0, P 1,..., P n pontrendszer konvex burkát adják. (Egy alakzat konvex burka az a legszűkebb konvex halmaz, amely az adott halmazt tartalmazza.) Véges sok síkbeli pont konvex burka (zárt) sokszöglemez, (elfajuló esetben, azaz egy egyenesre illeszkedő pontok esetén szakasz) melynek csúcsai (szakasz esetén határpontjai) az adott pontok közül kerülnek ki. Ez utóbbi pontokat nevezik extremális pontoknak. Térben véges sok pont konvex burka konvex poiédertest (elfajuló esetben egy síkra illeszkedő pontok esetén konvex sokszöglemez, kollineáris pontok esetén szakasz), melynek csúcsai

25 25 (szakasz esetén határpontjai) az adott pontrendszerből kerülnek ki, s melyeket ismét extremális pontoknak nevezünk. A 2.5. fejezet két problémát vet fel. 1. A pont lokalizációjának problémája: adott pontról eldönteni, hogy adott háromszöglemezben van-e 2. A konvex burok keresés problémáját: adott pontrendszer extremális pontjainak megkeresése. Mindkét kérdés egy mára önállóvá vált tudományág, melyet magyarul geometriai algoritmusok néven szokták meghatározni, 2 fontos problémája. A következő fejezetben foglalkozunk a megoldásukkal. 2 Angolul: Computational Geometry

26 3 G E O M E T R I A I A L G O R I T M U S O K 3.1 pont lokalizációja Hogyan tudjuk eldönteni, hogy egy pont benne van-e egy háromszöglemezben vagy sem? Ennek a fontos problémának a megoldására több megoldást is adunk. Először egy direkt algoritmust adunk, amelyben kiszámítjuk a háromszög síkjában fekvő pont normált baricentrikus koordinátáit a háromszöglemezre vonatkozóan, s a koordinátákból eldöntjük a tartalmazási kérdést. Ezt az eljárást nagyon könnyű lesz a térre átvinni. Legyen adva az X 0 X 1 X 2 háromszög és a síkjában egy D pont. Mivel D a háromszög síkjában van, biztosan vannak olyan s, t együtthatók, hogy Rendezve D = (1 t s)x 0 + sx 1 + tx 2. D X 0 = s(x 1 X 0 ) + t(x 2 X 0 ). (3.1) (3.1) egy lineáris egyenletrendszer. Az ismeretlenek s és t, az egyenletek száma annyi, amennyi koordinátája van a vektoroknak. A további képletek egyszerűsítése kedvéért vezessük be a következő jelöléseket: D X 0 = w, X 1 X 0 = u, X 2 X 0 = v. Tehát az egyenletrendszer w = su + tv. (3.2) Síkban két egyenlet és két ismeretlen van, a megoldást rögtön kapjuk Cramer-szabállyal: w 0 v 0 w 1 v 1 u 0 w 0 u 1 w 1 s = u, t = 0 v 0 u 1 v 1 u, 0 v 0 u 1 v 1 ahol w = (w 0, w 1 ), u = (u 0, u 1 ), v = (v 0, v 1 ). Mindkét tört nevezője ugyanannyi (csak egyszer kell kiszámolni). Ez a közös nevező bizonyosan nem nulla, mert X 1 X 0 és X 2 X 0 nem párhuzamosak. 26

27 27 P D 11. ábra. A horizontális egyenes D előtt lép be a sokszögbe. Csúcson is átmegy és ez a csúcs a számolásba kétszeresen számít. Az összes keresztezések száma az ábrán páratlan, tehát D a sokszög belsejében van. Térben (3.2) megoldásához szorozzuk az egyenletet skalárisan u-val és v-vel: w u = s(u u) + t(v u) w v = s(u v) + t(v v). Innen a megoldás (s, t)-re szintén a Cramer-szabály alapján: w u v u w v v v u u w u u v w v s = u u v u, t = u v v v u u v u. u v v v D akkor és csakis akkor az X 0 X 1 X 2 zárt háromszöglemez pontja, ha 0 s 1 és 0 t 1. A második algoritmus csak síkban működik, viszont nem csak háromszöglemezre, hanem tetszőleges egyszerű sokszöglemezre. (Emlékeztetőül: az egyszerű sokszög oldalai egymást nem metszik, minden csúcsban két oldal találkozik. Az egyszerű sokszög a sík (sokszögvonaltól különböző) pontjait két osztályba sorolja, a sokszög külsejébe és belsejébe.) Azt teszteljük, hogy a sík egy D pontját tartalmazza-e a sokszög belseje. Gyakorlatiasabb nyelven megfogalmazva. Egy síkbeli egyszerű sokszöget megadunk csúcsaival: P 0, P 1,..., P n 1. A felhasználó egérrel kattint a képernyőn. El kell dönteni, hogy a kattintás helye benne van a sokszög belsejében, vagy nincs. Húzzunk a D ponton keresztül egy l horizontális, azaz az x tengellyel párhuzamos egyenest (11. ábra). Először tegyük fel, hogy az egyenes nem megy át csúcson. Induljunk a sokszögön kívülről a mínusz végtelen irányától a plusz végtelen irányába, s akkor álljunk meg, ha elértük a pontot. Amikor a sokszög valamelyik oldalát először keresztezzük, akkor beléptünk

28 28 a sokszög belsejébe. A következő keresztezésnél kilépünk. Számoljuk a keresztezéseket! Ha a pontba érve a keresztezések száma páratlan, akkor úgy értünk D-hez, hogy utoljára beléptünk a sokszög belsejébe, tehát a sokszöglemez tartalmazza D-t. Ha a keresztezések száma páros (beleértve 0-t), akkor D kívül van a sokszöglemezen. (Úgy értünk D-hez, hogy közben utóljára kiléptünk a sokszög belsejéből, vagy egyáltalán be sem léptünk.) Ha a horizontális egyenes csúcsot tartalmaz, akkor képzeljük el, hogy gondolatban az egyenest D körül elforgatjuk az óramutató járásával ellentétesen épp annyira, hogy az egyenes már ne menjen át a csúcson, de új csúcsot se érjen el. A csúcs annyiszorosan számít, ahány metszéspont keletkezik az elforgatás után. (Ez a szám kettő, egy vagy nulla lehet. A 11. ábrán két metszéspont keletkezett az elforgatás után, vázoljuk a többi lehetséges esetet is!) Azt a következtetést vonhatjuk le, hogy egy oldalszakasz figyelmen kívül hagyandó a keresztezések számlálásánál, ha mindkét csúcs rajta van l-n, vagy ha a metszés a kisebb ordinátájú 1 határpontnál történt. Az algoritmus elvégzéséhez szükséges számítás mindössze annyi, hogy egy horizontális egyenes és egy szakasz metszéspontját ki tudjuk számolni. Legyen D második koordinátája d, P i = (x i, y i ). A P i P i+1 szakaszt tekintjük. (Az utolsó szakasz P i+1 P 0, ezért a csúcsokat a (P 0,..., P n 1, P 0 = P n ) szerkezetben érdemes megadni.) Ha y i = y i+1, akkor a szakasszal nem kell foglalkozni. Egyébként a szakasz paraméteres előállításából a metszési probléma: X i + t(x i+1 X i ) = D + s (1, 0). (0, 1)-el skalárisan szorozva: y i + t(y i+1 y i ) = d, ahonnan t = d y i y i+1 y i. Ha 0 t 1, akkor a horizontális egyenes metszi a szakaszt, és az M i metszéspont abszcisszája 2 míg ordinátája (természetesen) (M i ) 1 = x i + d y i y i+1 y i (x i+1 x i ), (M i ) 2 = y i + d y i y i+1 y i (y i+1 y i ) = d. Ha (M i ) 1 < d és (M i ) 2 > min{y i, y i+1 }, akkor a metszéspontot számláljuk. 1 ordináta = második koordinta 2 abszcissza = első koordináta

29 29 Algoritmus 3.1 Sokszöglemez belő pontjára kattintottunk-e? Input: (P 0,..., P n 1, P 0 = P n ), D L 0 for i = 0 to n 1 do if y i+1 = y i and (M i ) 1 < d and (M i ) 2 > min{y i, y i+1 } then L L + 1 if L páros then D nem belső pont else D belső pont 3.2 véges sok síkbeli pont konvex burkának keresése A konvex burok keresése a geometriai számítások egyik központi problémája, több algoritmus ismert rá. Egy konkrét alkalmazást említek: a szabadformájú görbék modellezésénél használt több görbetípusra is igaz az ún. konvex burokban maradás problémája, azaz a görbe a kontrollpontok konvex burkában halad. (Részletesebben lásd például a [Kov11] jegyzet 3. és 4. fejezetét.) Így ha ismerjük a kontrollpontok konvex burkát, akkor a metszési és láthatósági feladatokat először a konvex burokra ellenőrizzük. Ha a kontrollpontok konvex burka nem látható, akkor a görbe sem látszik. Ha két görbe kontrollpontjaiknak konvex burka nem metsző, akkor a görbék sem metszők. Sok algoritmus használja az alábbi fontos észrevételt. Ha P 0 = (x 0, y 0 ), P 1 = (x 1, y 1 ) és P 2 = (x 2, y 2 ) síkbeli pontok, akkor a P 0 P 1 P 2 (esetleg elfajuló) háromszög előjeles területe (ld. (1.6)) t(p 0 P 1 P 2 ) = 1 x 0 y x 1 y 1 1 x 2 y 2 1. (3.3) Ha a három pont kollineáris, akkor a determináns értéke 0. Egyébként az előjel úgy értendő, hogy ha P 0 P 1 P 2 balra kanyarodik P 1 -nél, akkor a determináns pozitív előjelű, ha jobbra kanyarodik, akkor negatív előjelű. A konvex burok kereső algoritmusoknk alapvetően két problémát kell megoldaniuk: 1. kiválasztani az extremális pontokat, 2. ezeket megfelelő sorrendbe rendezni. A következőkben ismertetett konvex burok kereső algoritmus a Jarvisalgoritmus. Azon az észrevételen múlik, hogy a megadott ponthalmazból kiválasztott két pont összekötő szakasza akkor és csakis akkor a konvex

30 ábra. Pontrendszerek extremális pontjai (pirossal) burok oldalszakasza, ha az összes többi pont a szakaszon, vagy a pontokat összekötő egyenes ugyanazon oldalán van. n pont ( n 2 ) egyenest határoz meg. Minden egyeneshez (legrosszabb esetben) n 2 pont elhelyezkedését kell megvizsgálni. Vegyük észre, hogy ha találtunk egy extremális pontot, akkor a konvex burok hozzá tartozó (egyik) oldalának másik végpontja is extremális pont, tehát extremális pontból kiindulva mindig találunk egy következő extremális pontot. (Ez az észrevétel az extremális pontok sorrendjének problémáját meg is oldja.) A legkisebb abszcisszájú pont (vagy azok egyike) biztosan extremális pont. Ha több legkisebb abszcisszájú pont van, akkor közülük a legkisebb ordinátájú biztosan extremális pont. A 12. ábrán szemléltettem, hogy milyen problémák vetődnek fel, amelyekre a konvex burok kereső algoritmusnak figyelnie kell: kollineáris pontok esetén két másik adott pont között levő pont nem lehet extremális pont (bal oldali ábra); előfordul, hogy az adott ponthalmaz egy egyenesre illeszkedő pontrendszer. Kétfajta tesztet alkalmazunk. Mindkét tesz elválasztásról szól, az első egy dimenzióban, a második két dimenzióban. Az egy dimenziós teszt a között van teszt. Ha t(p 0 P 1 X) = 0, azt kell eldönteni, hogy X a P 0 P 1 szakaszon van vagy sem, vagyis X a P 0, P 1 pontok között van, vagy sem. A párhuzamos vetítés a között van relációt megtartja. Így csak az abszcisszákat (vagy ordinátákat) kell vizsgálni. Legyen P 0 = (x 0, y 0 ), P 1 = (x 1, y 1 ), X = (x, y). x 0 = x 1 esetén X pontosan akkor nincs P 0 és P 1 között, ha x < min{x 0, x 1 } vagy x > max{x 0, x 1 }. Ha x 0 = x 1, akkor ordinátákra végezzük el ugyanezt a tesztet. A második teszt a (két dimenziós) elválasztás teszt. Azt kell tesztelnünk, hogy vannak-e az adott pontok között olyanok, amelyeket két kiválasztott pont, P 0 P 1 elválaszt. Ezt megtehetjük úgy, hogy csak a P 0 P 1 -gyel nem kollineáris pontokat vizsgáljuk, kiszámítjuk ebből a halmazból egy X 0 pontra t(p 0 P 1 X 0 ) előjelét, majd az összes többi X pontra teszteljük t(p 0 P 1 X) előjelét. Ha minden előjel megegyezik t(p 0 P 1 X 0 ) előjelével, akkor minden pont P 0 P 1 azonos oldalán van. Legyen a kiválasztott két pont P i és P j (i = j), az előbbiek szerint feltehető, hogy P i extremális pont. Az vizsgáljuk, hogy P i P j a konvex burok oldal-

31 31 szakasza-e (i = j). (Röviden úgy fogom használni, hogy jó szakasz.) Ha igen, akkor P j extremális pont. Legyen S a P i -vel és P j -vel kollineáris pontok halmaza (beleértve P i -t és P j -t is), míg T a P i -vel és P j -vel nem kollineáris pontok halmaza. 1. Először az S halmaz pontjaira ellenőrizzük, hogy belül vannak-e a P i P j szakaszon. for X S do if P i X P j then P j nem extremális pont 2. Ha P j -t nem zártuk az első lépésben ki, legyen T = m. for k = 1 to m 1 do if sgn t(p i P j T k ) = sgn t(p i P j T 0 ) then P i P j nem jó szakasz és P j -t kizárjuk 3. Ha P j -t nem zártuk ki a második lépésben sem, akkor P j extremális pont. (Ha P i P j nem jó szakasz, attól még P j lehet extremális pont.) Példaként a korábban már szerepelt öt pöttyös alakzaton illusztrálom az algoritmust. A pontokat először az abszcisszák szerint növekvő sorrendbe rendeztem, ahol azonos abszcisszák vannak, ott az ordináták szerint is rendeztem. P1 P5 P3 P0 P2 P4 A legkisebb abszcisszájú pontok között a legkisebb ordinátájú pont extremális pont lesz. P1 P5 P3 P0 P2 P4 P 0 P 1 jó szakasz, s így P 1 extremális pont, mert a P 0 P 1 egyenesen nincs további pont a pontrendszerből, és P 0 P 1 nem választ el pontokat az adott pontrendszerből. P 1 P 2 nem jó szakasz, mert a P 0 és P 3 pontokat elválasztja. A P 3 pontot azért kell kizárni, mert elválasztja P 4 -et és P 1 -et. P 1 P 4 sem jó szakasz, mert

32 32 P1 P5 P1 P5 P1 P5 P3 P3 P3 P0 P2 P4 P0 P2 P4 P0 P2 P4 elválasztja a P 0 és P 5 pontokat. Végül P 1 P 5 megfelelő szakasz, és P 5 extremális pont. P1 P5 P3 P0 P2 P4 P 5 mellé már csak a P 2 P 3, P 4 pontok közül kell társat találni. P 2 és P 3 könnyen kiesnek, mert P 2 megbukik a két dimenziós elválasztás teszten, P 3 már az egy dimenziós elválasztás teszten (a között van teszten). P 4 megfelelő. P 4 -ből kiidulva csak a P 2 és P 3 pont jöhet szóba, de P 2 -t a között van teszt miatt, P 3 -t a két dimenziós elválasztás tesz miatt kell kizárni: valamennyi extremális pontot megtaláltuk.

33 4 A L A K Z AT O K M E T S Z É S E 4.1 síkok metszése Ha két sík normálvektora nem párhuzamos, akkor a két sík metszésvonala egyenes. Hogyan tudjuk meghatározni két sík metszésvonalát? Legynek a síkok normálvektorai w 1 és w 2, a síkok egyenletei tehát w 1 X = d 1 (4.1) w 2 X = d 2. (4.1)-ben három ismeretlen és két egyenlet van. Ha v = w 1 w 2 = 0, akkor az egyenletrendszernek van megoldása, s a megoldások halmaza egy egyenes, a két sík metszésvonala, melynek irányvektora v. Egy pontot kell még találnunk a megoldás halmazban. Az irányvektor valamelyik koordinátája (mondjuk az i-edik) biztosan nem nulla. X-ben az i-edik koordinátát 0-nak helyettesítve (4.1)-ben már csak két ismeretlen lesz, és az egyenletrendszert egyértelműen meg tudjuk oldani. (4.1) megoldásaként kapjuk a metszésvonal pontjának hiányzó két koordinátáját. Három sík kölcsönös helyzetét vizsgálva, a síkok normálvektorait jelölje w 1, w 2, w 3 ; a síkok egyenletei w 1 X = d 1 (4.2) w 2 X = d 2 w 3 X = d 3. Legyen W = (w 1, w 2, w 3 ) t (azaz W i-edik sora w i ), D = (d 1, d 2, d 3 ) t R 3 1. A (4.2) lineáris egyenletrendszer mátrix alakja WX = D. Az egyenletrendszer megoldható, ha rang W = rang(w, D). A megoldható esetben a megoldástér dimenziója (3 rang W), azaz lehet pont, egyenes, vagy sík. A megoldást általánosan a Gauss-eliminációval tudjuk kezelni. Ha rang W = 3, azaz a három normálvektor nem egy síkban reprezentálható, akkor X = W 1 D. Jóllehet a Gauss-elimináció az inverz meghatározására is alkalmazható, célszerű direkt megoldást adni a problémára, hogy az egymást követő eliminációs lépések következtében fellépő numerikus hibaterjedést elkerüljük. W 33

34 34 inverzét a kifejtési tétel alapján, a szorzótársak módszerével képezve, a megoldást a következőképpen adhatjuk meg: W 1 D = d 1(w 2 w 3 ) d 2 (w 3 w 1 ) + d 3 (w 1 w 2 ). det(w 1, w 2, w 3 ) 4.2 egyenes és sík kölcsönös helyzete és kapcsolódó problémák Legyen a sík egyenlete w X = d, az egyenes paraméteres előállítása X = X 0 + tv. Ha v w = 0, akkor az egyenes metszi a síkot. Valamely t R értékre X = X 0 + tv kielégíti a sík egyenletét: (X 0 + tv) w = d, ahonnan t kifejezhető: azaz a metszéspont t = d w X 0, w v X = X 0 + d w X 0 v. (4.3) w v Háromszöglemez és szakasz metszése Az eddig ismertetett problémák közül a legvalószerűbb : a síkok, egyenesek végtelen alakzatok, s mint ilyenek absztrakciók. Első módszerként a síkot egyenletével kezeljük. A háromszög csúcsai legyenek P 0, P 1, P 2, a szakasz határpontjai X 0, X 1. A háromszöglemez síkjának egyenletét P 0 P 1 P 2 ismeretében fel tudjuk írni: w X = d, ahol w = (P 1 P 0 ) (P 2 P 0 ). A feladatot három lépésben oldjuk meg 1. eldöntjük, hogy a szakasz metszi-e a háromszög lemez síkját 2. ha az előző lépésben a válasz igen akkor meghatározzuk a sík és a szakasz metszéspontját 3. eldöntjük, hogy a metszéspont a háromszöglemezen belül esik-e. (V.ö.3.1. fejezet: A pont lokalizációja.) Képezzük az F : R 3 R, X F(X) = w X d függvényt. F a sík pontjaira 0 értéket vesz fel, egyébként a sík egyik oldalán pozitív, a másik oldalán negatív. Az adott szakasz csak akkor metszheti a háromszög lemezt, ha F(X 0 ) és F(X 1 ) előjele különbözik.

35 35 A továbbiakban tegyük fel tehát, hogy sgn F(X 0 ) sgn F(X 1 ) = 1. Az előzőekben ismertetett módszer szerint (ld. a (4.3) formulát) megkeressük a sík és a szakasz metszéspontját. A 3. lépésben most egy újabb módszert alkalmazunk. Megvizsgáljuk a háromszög síkjában a háromszög minden oldalára, hogy az X metszéspont ugyanazon oldalon van-e, mint a háromszög harmadik (a szóban forgó oldalra nem illeszkedő) csúcsa. Ha a kiválasztott oldal a P i P j oldal és a harmadik csúcs P k, akkor (P i P j ) (X P j ) = 0 esetén X a P i P j egyenesen van. Egyébként (P i P j ) (P k P j ) és (P i P j ) (X P j ) is a háromszög síkjára merőleges vektor, tehát egyirányúk vagy ellentétes irányúak. Egyirányúság esetén van X a jó oldalon, ekkor a vizsgálatot folytatjuk a következő oldallal (ha még nem vizsgáltuk meg mindhárom oldalt), míg ha a két vektor ellentétes irányú, akkor a metszéspont biztosan nem a háromszög lemezre esik. A két vektor azonos irányát a skaláris szorzatuk dönti: (P i P j ) (P k P j ) (P i P j ) (X P j ) { > 0 akkor X jó oldalon van < 0 akkor X rossz oldalon van. Sugár metszése háromszöggel Az X 0 X 1 egyenes (félegyenes, szakasz) metszetét vizsgáljuk a P 0 P 1 P 2 háromszöglemezzel. Elegendő az eljárást egyenesre megadni, félegyenesre, szakaszra könnyen módosítható. A megoldáshoz az egyenes és a háromszöglemez paraméteres előállítását használjuk. A kérdés, hogy vannak-e olyan t R, u, v [0, 1] paraméterek, hogy (1 t)x 0 + tx 1 = (1 u v)p 0 + up 1 + vp 2. (4.4) Ha a probléma az X 0 X 1 félegyenesről szól, akkor t [0, ), míg ha az X 0 X 1 szakaszról, akkor t [0, 1]. (4.4)-et rendezve: t (X 1 X 0 ) +u (P 0 P } {{ } 1 ) +v (P 0 P 2 ) = P 0 X 0. } {{ } } {{ } } {{ } a b c d A jobb áttekinthetőség kedvéért vezessük be az előbbiekben már jelölt elnevezéseket: ta + ub + cv = d. (4.5) (4.5) egy lineáris egyenletrendszer a t, u, v ismeretlenekre. a, b, c, d R 2 vagy R 3 vektorok, annyi egyenletünk van, ahány dimenzióban vagyunk. Kiegészíthetjük a vektorokat a 0 utolsó koordinátával, így mindig három dimenzióban vagyunk, a továbbiakban ezt tesszük. A lineáris egyenletrendszert természetesen általánosan meg tudjuk oldani Gauss-eliminációval.

36 36 Az egymásba ágyazott eliminációs lépések azonban növelik a numerikus hibákat, így (4.5)-öt explicit módon fogjuk megoldani. b és c nem párhuzamos vektorok, így vektoriális szorzatuk nem zéró. Emellett b c merőleges b-re is és c-re is. Így (4.5)-öt skalárisan szorozva b c-vel t(a (b c)) = d (b c). (4.6) Két esetet különböztetünk meg. 1. eset: a (b c) = 0. Ekkor t-t (4.6)-ból kifejezhetjük: t = (4.5)-ben máris csak két ismeretlen van: d (b c) a (b c). (4.7)-et skalárisan szorozva b-vel és c-vel: ub + vc = d ta. (4.7) } {{ } e (b b)u + (c b)v = e b (b c)u + (c c)v = e c, majd a Cramer-szabállyal megoldva: e b c b e c c c u = b b c b, v = b c c c b b b c b b b c e b e c c b. c c Ha u, v [0, 1], akkor az egyenes metszi a háromszöglemezt. Ha emellett t 0, akkor a metszéspont rajta van az X 0 X 1 félegyenesen, ha t [0, 1], akkor az X 0 X 1 szakaszon is. 2. eset: a (b c) = 0. A két-dimenziós síkbeli problémánál mindig ez a helyzet, a térben akkor fordul elő ez az eset, ha a pontok mind egy síkban vannak. Ekkor (4.4)-nek végtelen sok megoldása van: minden t-re a bal oldali pont a közös síkban van, ezért u és v is meghatározható hozzá. (4.4) helyett az X 0 X 1 egyenes és a háromszög oldal szakaszainak metszését kell vizsgálni. Mivel a két-dimenziós problémánál is kiegészítettük a pontokat harmadik koordinátával, vektoriális szorzással mindig el tudjuk dönteni, hogy az egyenes párhuzamos-e valamelyik oldallal. Pl. (X 1 X 0 ) P 0 P 1 (X 1 X 0 ) (P 0 P 1 ) = 0. Csak azokat az oldal szakaszokat kell vizsgálni, amelyek nem párhuzamosak az egyenessel. Legyen pl. a P 0 P 1 szakasz ilyen. Az X 1 X 0 és P 1 P 0 egyenesek metszéspontjának megkeresése a (1 t)x 0 + tx 1 = (1 u)p 0 + up 1 (4.8)

37 37 lineáris egyenletrendszer megoldását jelenti t-re és u-ra. Rendezve t (X 1 X 0 ) +u (P 0 P } {{ } 1 ) = P 0 X 0. } {{ } } {{ } a b d a-val és b-vel skalárisan szorozva mindkét oldalt: (a a)t + (b a)u = d a (a b)t + (b b)u = d b. Cramer-szabállyal megoldva: d a d b t = a a a b b a b b b a b b u = a a a b a a a b d a d b b a. b b X 0 X 1 akkor és csakis akkor metszi a P 0 P 1 szakaszt, ha u [0, 1], a metszéspont pedig M = (1 u)p 0 + up 1. Ehhez t-t nem is kell meghatározni, de ha az is fomtos, hogy a metszéspontról megállapítsuk, hogy az X 0 X 1 félegyenesen vagy szakaszon van, akkor t értékét is meg kell vizsgálni. M akkor és csakis akkor van az X 0 kezdőpontú X 1 -et tartalmazó félegyenesn, ha t 0, illetve akkor és csakis akkor van a P 0 P 1 szakaszon, ha t [0, 1]. A fentebb ismertetett módszer egyenes és konvex sokszöglemez metszési problémájára is alkalmazható. Ha a sokszöglemez és az egyenes nem egy síkban vannak, akkor a konvex sokszöglemezt egy csúcsból induló átlóival háromszöglemezekre lehet bontani, ezekre a háromszögekre kell a metszési feladatot megoldani az előzőek szerint (1. eset). Ha az egyenes és a sokszöglemez egysíkúak, akkor az egyenes és az oldalszakaszok metszési problémáját vizsgáljuk a 2. eset szerint. 4.3 doboz-egyenes metszés A síkbeli problémát tekintsünk: egy egyenes metsz-e egy téglalapot? Ezt a problémát sokféle hatékony módon meg lehet oldani, amire a későbbiekben még látunk módszert (pl. az effektív sugár módszerét az 53. oldalon). Az alábbiakban leírt módszer a térbeli problémára is általánosítható, sőt a téglatesttől általánosabban tetszőleges paralelepipedonra is működik. Az X 0 X 1 egyenest paraméterezve adjuk meg: X = X 0 + t(x 1 X 0 ). Ha az előbbi parametrizált előállítást az X mozgó pont mozgását leíró egyenletnek fogjuk fel, ahol t az idő, akkor a kérdés az, hogy van-e olyan időpont, hogy X mindkét sávon belül van. Ha X 1 X 0 nem párhuzamos

38 BC A Játékgeometria 38 t 2 t 1 X 1 X ábra. Sugár és sáv keresztezése: az X 0 -ból induló X 1 X 0 sebességgeld mozgó pont t 1 időpontban lép be a sávba és t 2 időpontban lép ki. a téglalap oldalaival, akkor a mozgó pont mindkét sávba belép és mindkét sávból kilép. Ha az [a 1, a 2 ] időintervallumot tölti az egyik sávban, a [b 1, b 2 ] intervallumot a másik sávban. A kérdés, hogy a két intervallum kölcsönös helyzete milyen. A két intervallum diszjunkt, ha egyik intervallum teljesen a másik valamelyik oldalán van, azaz a 2 < b 1 vagy b 2 < a 1. Tagadással kapjuk, hogy van olyan időpont, hogy X mindkét sávban benne van, ha a 2 b 1 és b 2 a 1.

39 5 L I N E Á R I S T R A N S Z F O R M Á C I Ó K Geometriai transzformáción a sík vagy a tér kölcsönösen egyértelmű leképezését értjük a síkra vagy térre. Vagyis a leképezés értelmezési tartománya a sík vagy a tér a leképezés céltere megegyezik az értelmezési tartománnyal különböző pontoknak különböző a képe minden pont valamely pontnak a képe. 5.1 egyenestartó transzformációk mátrix alakja Ezek közül a transzformációk közül is ebben a tananyagban csak az egyenestartókkal foglalkozunk, vagyis egy egyenesre illeszkedő pontok képei is egy egyenesre illeszkednek, illetve egy egyenesre illeszkedő pontok ősképei is egy egyenesre illeszkednek. Más szóval az egyenestartó transzformációkat affin transzformációknak is nevezik. Az affin transzformációkat az olvasó feltehetően már ismeri (pl. a [Kov11] vagy [Sza10] jegyzetekből.) Az affin transzformációk mindig mátrix műveletek segítségével írhatók le: F : R n R n akkor és csakis akkor affin, ha van olyan A GL(n) mátrix és b R n vektor, hogy F(X) = AX + b. (5.1) Röviden úgy is írhatjuk, hogy F = (A, b), és mivel (A, b) R n (n+i), F-re mint mátrixra is tekinthetünk. A sík affin transzformációjánál (A, b) R 2 3, a térben (A, b) R 3 4. Az A mátrix a transzformáció lineáris része, b pedig az eltoló vektora. (F(X) = X + b a b-vektorral történő eltolás innen a név.) Az (5.1) képlet elég egyszerű, a transzformációk szorzása (egymás után való elvégzése) viszont némi körültekintést igényel. Ha F = (A, b), G = (C, d) két affin transzformáció, akkor (G F)(X) = C(AX + b) + d = (CA)X + (Cb + d), (5.2) azaz (C, d) (A, b) = (CA, Cb + d). (5.3) 39

40 40 Ebből az észrevételből az inverz transzformációra is következtethetünk: ugyanis (A, b) 1 = (A 1, A 1 b), (5.4) (A, b) (A 1, A 1 b) = (AA 1, A(A 1 b) + b) = (I, 0) (A 1, A 1 b) (A, b) = (A 1 A, A 1 b A 1 b) = (I, 0). Az (5.2) és (5.4) formulák ugyan nem bonyolultak, a lineáris résszel való számolás kézenfekvőnek is tűnik, az eltoló vektorokkal való számolás viszont külön figyelmet (és külön algoritmust) igényel. Az egész számítást egyetlen mátrixszorzásra lehet egyszerűsíteni, ha homogén koordinátákkal számolunk. (A homogén koordinátákra vonatkozóan ld. a 2.1. fejezetet.) (A, b) helyett térjünk át a ( ) A b GL(n + 1) (5.5) 0 1 mátrixra. (5.5)-ben a mátrixot tömb alakban írtuk fel, ahol nem minden az, aminek látszik, mert 0 R n. Pl. a síkban, ha n = 2, b = (b 1, b 2 ) és A = (a ij ), akkor ( ) A b = 0 1 a 11 a 12 b 1 a 21 a 22 b A tömb alakú mátrixok alkalmazásában az a jó, hogy az egyébként nem mátrix szorzással elvégezhető leképezések (mint pl. (5.1)) mátrixok szorzására redukálhatók, pl. (5.1) esetében ( ) ( ) ( ) A b X AX + b =. (5.6) (5.6)-ban a jobb oldali mátrixot a mátrixszorzás formális szabálya szerint (sor oszlop kompozíció) kaptuk meg. Ennek az egyszerűsítésnek azonban ára van, az X pont helyett a pont (X, 1)-el számoltunk, azaz a pont homogén koordinátáival. Hasonlóan, az eredmény (AX + b, 1), azaz a képpont homogén koordinátái. Az igazi nyeremény azonban a transzformációk szorzásánál jelentkezik. (5.2) helyett mátrixszorzással számolhatunk: ( ) ( ) C d A b = ( CA Cb + d 0 1 ), (5.7) következésképpen ( ) 1 A b = 0 1 ( A 1 A 1 ) b. 0 1 A lényeg az, hogy megértsük, hogy a transzformációnak van lineáris része és eltoló vektora. A programunkban aztán minden a transzformáció lineáris

41 41 részének és eltoló vektorának elhelyezésétől függ. Ha az (A, b) R n (n+1) elrendezést választjuk, akkor a transzformációt a síkban 2 3 típusú, a térben 3 4 típusú mátrixszal adjuk meg, nem kell homogén koordinátákkal számolni, ( ) de a transzformációk szorzása komplikált ((5.3) szerint). Ha az A b elrendezést választjuk, akkor a transzformációk szorzása mátrixszorzás, viszont homogén koordinátákkal kell számolni, 3 3 típusú, illet- 0 1 ve 4 4 típusú mátrixokkal. (Ezt a felírást nevezzük lineáris reprezentációnak.) A szerző mindkettőre látott már komoly példát. Ha valamilyen grafikus könyvtárat használunk, akkor annak a szabályát kell követni. Pl. az OpenGL könyvtár a homogén koordinátás módszert alkalmazza, a Post- Script nyelv a R 2 3 = R 6 típusú reprezentációt (csak síkban) 1. Ha mindent magunk írunk, akkor választani kell. A továbbiakban csak a lényegre, a lineáris részre koncentrálunk. Az eltolást szorzással mindig be lehet építeni: ( ) A b = 0 1 ( I b 0 1 ) ( ) A 0 vagy (A, b) = (I, b) (A, I). 0 1 Az előbbi sorban I a megfelelő típusú egységmátrix. Példaként először a skálázást mutatjuk be térben. (Síkban értelem szerűen módosítható a példa.) A transzformáció lineáris része s x 0 0 A = 0 s y 0, s x, s y, s z = 0, 0 0 s z eltoló vektora pedig 0 vektor. A transzformáció hatását könnyen megértjük, ha az (1, 0, 0), (0, 1, 0), (0, 0, 1) vektorokra alkalmazzuk. A képek rendre (ld. 14. ábrát) (s x, 0, 0), (s y, 0, 0), (0, 0, s z ). A skálázás inverze szintén skálázás, a lineáris rész főátlójában (1/s x, 1/s y, 1/s z ) áll. Második példánk legyen a középpontos nyújtás (ld. (1.1)). A C centrumú λ arányú nyújtás lineáris része (1.1) alapján λi, eltoló vektora pedig C λc. Azaz a transzformáció mátrix reprezentációja: ( ) λi C λc. 0 1 Az inverz transzformáció lineáris része λ 1 I, eltoló vektora 1 λ I(C λc) = 1 λ C + C, 1 Ok, PostScriptben általában nem írunk játékprogramot.

42 ábra. Skálázás. A piros kocka oldalai egységnyi hosszúak. A kék téglatest oldalai a skálafaktoroknak megfelelően s x, s y, s z. azaz mátrix reprezentációja 1 λ ( ) I λc C. 0 1 További példákat találunk a feladatok között. 5.2 tükrözés Tükrözzünk az (X P) w = 0 egyenletű egyenesre vagy síkra! (Ld. a 15. ábrát!) (w R n = R n 1 nem zéró vektor az egyenes/sík normálvektora, P illeszkedik az egyenesre/síkra.) Ez a transzformáció nem más, mint az X X 2 (X P) w w 2 w = X 2 X w w 2 w + 2 P w w 2 w leképezés. Ennek a transzformációnak az eltoló vektora a vektor, míg lineáris része az 2 P w w 2 w Rn X X 2 X w w 2 w

43 43 X ((X P) w) w w 2 w P X 15. ábra. Tükrözés egyenesre leképezés, amely X H w X mátrix szorzással is megadható (H w R n n ). H w lineáris algebrai módszerekkel azonnal kiszámítható: H w = I 2 w wt w w Rn n, (5.8) ahol I az n n típusú egységmátrix. (Az ilyen módon megadott mátrixot Householder-mátrixnak nevezzük.) Példaként kiszámítjuk az egyenesre vonatkozó síkbeli tükrözés lineáris reprezentációját. (5.8) második tagjának számlálója w = (A, B) esetén: ( ) A (A, B) = B míg a nevező A 2 + B 2. Így a mátrix: H w = ( 1 2 A 2 2 AB A 2 +B 2 A 2 +B 2 AB A 2 +B B2 A 2 +B 2 Ha P = (x 0, y 0 ), akkor az eltoló vektor ( ) A 2 AB BA B 2, ) = ( B 2 A 2 A 2 +B 2 2AB A 2 +B 2 2AB A 2 B 2 A 2 +B 2 A 2 +B 2 ( 2(x0 A 2 + y 0 AB) A 2 + B 2, 2(x 0AB + y 0 B 2 ) ) A 2 + B 2. ).

44 44 Így a transzformáció lineáris reprezentációja B 2 A 2 A 2 +B 2 2AB A 2 +B 2 2(x 0 A 2 +y 0 AB) A 2 +B 2 2AB A 2 +B 2 A 2 B 2 A 2 +B 2 2(x 0 AB+y 0 B 2 ) A 2 +B Mivel w-nek csak az iránya lényeges, A = 0 esetén át szokás térni a w-vel párhuzamos (1, B/A) = (1, D)) vektorra, ekkor a mátrix elemek egyszerűsödnek, például a Housholder-mátrix alakja ) H (1,D) = ( D 2 1 D D D D D D 2 D 2 +1 Alkalmazásként vizsgáljunk egy gyakran előforduló problémát. Olyan mozgást (irányítástartó egybevágóságot) kell konstruálni, amely egy dobozt (téglalapot vagy téglatestet) irányba állít, azaz a transzformált doboz oldalirányai a koordinátatengelyek irányai legyenek. Kezdjük a síkbeli esettel. A téglalap nem párhuzamos oldalvektorai legyenek a, és b továbbá (a, b) pozitív irányítású legyen, azaz det(a, b) > 0. Legyen i = (1, 0, ), j = (0, 1). Ha i a (i és a párhuzamosak és egyirányúak), akkor készen vagyunk. Egyébként legyen w = a a i. Ekkor.. a = a 2 w a w w w = a = a 2 a 2 1 a a 2 (a a i) = 2a 1 a + a 2 = a (a a i) = a i. Mivel a tükrözés a merőlegességet megtartja b merőleges lesz i-re, ugyanakkor a tükrözés az irányítást megváltoztatja, ezért b j, vagyis még tükrözni kell az x tengelyre. (Ez a tükrözés a -t már nem változtatja.) Emlékeztetőül, az x tengelyre vonatkozó tükrözés mátrixa ( ) Térben a téglatest oldalvektorai legyenek a, b és c, továbbá (a, b, c) pozitív irányítású. Az első lépés a síkbeli esethez analóg, ha i a, akkor készen vagyunk, egyébként w = a a i. Ekkor a = a i, b képe b. Tudjuk, hogy a b (ezzel együtt i b ), mert a és b is merőlegesek voltak. Ha b j, akkor tükröznünk kell még az xy síkra. (Ez a tükrözés a -t és b -t nem változtatja, a harmadik oldalt a pozitív orientációnak megfelelően állítja be.) Egyébként legyen w = b b j. H w b = b j. Könnyen látható, hogy H w a = a, hiszen i a tükrözés síkjában van: (b b j i = b i = 0,

45 45 i b miatt. Ha a két lépésben együttvéve csak egy tükrözésünk volt, akkor még a harmadik irány beállítása miatt tükrözzünk az xy síkra. Ennek mátrixa pont körüli forgatás síkban Geometriailag a forgatást a síkban annak középpontja és szöge határozza meg. Ha az origó körül forgatunk, akkor a transzformáció lineáris (azaz eltoló vektora zérus vektor). α szögű elforgatás 2 esetén az X = (x, y) pont képe ( ) ( ) x cos α sin α y = sin α cos α } {{ } rot α ( ) x. (5.9) y Ha egy C centrum körül forgatunk α szöggel, akkor a transzformáció lineáris része az (5.9)-ben szereplő forgatási mátrix, eltoló része pedig C rot α C: X rot α X + (C rot α C) (5.10) Például, ha a C = (x 0, y 0 ) pont körül forgatunk, az eltoló vektor ( x0 y 0 ) ( ) ( ) cos α sin α x0 = sin α cos α y 0 ( ) x0 (1 cos α) + y 0 sin α. y 0 (1 cos α) x 0 sin α 5.4 egyenes körüli elforgatás a térben A források gazdagsága a probléma kiemelt fontosságára utal. Terjedelmes receptek találhatók különböző könyvekben és az interneten, a cél most az, hogy egy könnyen használható módszert adjunk. Először olyan tengely körül forgassunk, mely áthalad az origón. Az egyszerűség kedvéért a tengely irányvektora legyen egységvektor, s jelöljük ezt az egységvektort w-vel. A számításokban w = (a, b, c). A forgatás szöge α R. Ez a két adat még nem határozza meg egyértelműen a forgatást, állapodjunk meg abban, hogy a forgatást mindig a jobbkéz-szabálynak megfelelően értjük, azaz a tengely irányával szembe nézve a forgatás az óramutató járásával ellentétes. Az elforgatást ekkor az R 3 R 3, X cos α(x w X w) + w x w + sin α(w X) (5.11) 2 A forgatás iránya α előjelének megfelelően értendő.

46 46 összefüggés adja meg. Ha összevetjük (5.11)-et összefüggést (1.7)-tel, (1.9)- cel és (1.11)-gyel, akkor a forgatás felírható X RX aklakban az mátrixszal, ahol R = cos α(1 ww t ) + ww t + sin αw = = cos α 1 + sin αw + (1 cos α)ww t 0 c b W = c 0 a. b a 0 Mivel w egységvektor, azaz a 2 + b 2 + c 2 = 1, közvetlen számolás mutatja, hogy W 2 + I = ww t, így R = I + sin αw + (1 cos α)w 2. (5.12) Ez elég egyszerű, igaz? Csak kicsit bonyolultabb a helyzet, ha a forgástengely nem megy át az origón. A tengely egy pontja legyen P 0. A TFT (tolforgat-tol) szabályt kell alkalmazni: 1. olyan eltolást alkalmazunk, hogy P 0 az origóba kerüljön: X X P 0 2. forgatunk az (5.12) mátrixszal történő balszorzással 3. az első eltolás inverzét alkalmazzuk. Vagyis X R(X P 0 ) + P 0 = RX + (P 0 RP 0 ). (5.13) A transzformáció lineáris része R, eltoló vektora X 0 RX 0. (Önmagában (5.13) és (5.10) teljesen analóg formulák.) 5.5 vetítés és a szelekció probléma Ebben a fejezetben térbeli problémát tárgyalunk, ha a játékunk nem 3D-s, akkor átugorhatjuk. Már végrehajtottuk az összes R 3 R 3 transzformációt, most a térbeli pontokat le kell vetítenünk a képernyőre, vagy a képernyőn nyitott ablakra. Nagyon fontos, hogy először egy absztrakt (vagy másképpen normalizált) képernyőre vetítünk, ahol a koordináták csak a [ 1, 1] intervallumban vannak. (Ha három pixel három pixeles képernyőnk van, akkor vége is.) Ezután skálázunk a képernyő, vagy a megnyitott ablak geometriájának megfelelően. Ha a megnyitott ablak mérete (pixelben) w h, az origó a bal felső sarokban van, a pozitív irányok pedig jobbra és lefele vannak, akkor az absztrakt képernyőről az ablakba a x = w (x + 1) 2 y = h (5.14) 2 (y + 1)

47 47 transzformációval térünk át. Centrális vetítés Ebben a munkában csak centrális vetítésekkel foglalkozunk. Általánosan a C R 3 centrumból vetítünk a w normálvektorú, X 0 ponton átmenő (X X 0 ) w = 0 egyenletű síkra. A P pont vetületét jelölje P, azaz valamely t R-re P = C + t(p C) kielégíti a sík egyenletét: Az (5.15) egyenletből t kifejezhető: (C + t(p C) X 0 ) w = 0. (5.15) t = (X 0 C) w (P C) w, így visszahelyettesítve megkapjuk P -t: P = C + (X 0 C) w (P C). (5.16) (P C) w C, X 0 és w választásától függően különböző speciális vetítéseket írhatunk fel. A következő példa egy gyakran alkalmazott vetítés típust ad meg. Vetítsünk az origóból a z = n (n > 0) síkra. Azaz az origóból vetítünk a (0, 0, 1) normálvektorú, (0, 0, n) ponton áthaladó síkra. (n a near közeli szóra utal, ennek logikáját a későbbiekben majd látni fogjuk.) Az (5.16) egyenletbe behelyettesítve vagy részletesen: P = n z P, x = nx z (5.17) y = ny z (5.18) z = n = nz z. (5.19) Mivel a vetítés alakja közös nevezőjű lineáris törtfüggvény, kézenfekvő áttérni homogén koordinátákra: x 1 = nx x 2 = ny x 3 = nz x 4 = z,

48 48 és x = x 1 /x 4, y = x 2 /x 4. A vetítés mátrix alakban tehát x 1 n x x 2 x 3 = 0 n 0 0 y 0 0 n 0 z x Most bevezetjük az ún. normalizált vetítést. A vetítési transzformációról előírjuk, hogy a képsík conv{(l, b), (l, t), (r, t), (r, b)} téglalapja a [ 1, 1] [ 1, 1] négyzetbe transzformálódjon egyenestartó (affin) transzformációval. (l, r, t, b > 0, a betűk a left bal, right jobb, top fenn, bottom lenn szavakra utalnak.) Egyszerűen látható, hogy ehhez (a képsík Descartes-koordinátarendszerében) az x = 2 x r l r + l r l y = 2 y t b t + b t b transzformációt kell végrehajtani. Az első koordinátára beírva a vetítéskor kapott értéket az (5.17) formulából: Hasonlóan a második koordinátára: x nx z = 2 r l r + l r l = 2 r l n x + r+l z r l z y nx z = 2 t b t + b t b = 2 t b n y + t+b z Homogén koordinátákkal mátrix alakban x 1 x 2 x 3 = x 4 2n r+l r l 0 r l 0 2n t+b 0 t b t b n t b z.. x y z. 1 A vetületi pont koordinátáit x = x 1 /x 4, y = x 2 /x 4 adja. z = x 3 /x 4 eredménye minden pontra n. Mivel x 3 -t a vetületi pont koordinátái kiszámításánál nem használjuk, a vetítési mátrix harmadik sorát úgy módosítjuk, hogy az ábrázolásnál nem használt z = x 3 /x 4 koordináta kódolja az eredeti pont térbeli harmadik koordinátáját. z nem függhet x-től és y-tól, így a mátrix alakja 2n r+l r l 0 r l 0 2n t+b 0 t b t b A B

49 49 Bennünket most csak x 3 és x 4 érdekel: x 3 = Az + B x 4 = z, azaz z = A B z. Itt is normalizáljunk, a térbeli [ n, f ] koordináták képe [ 1, 1] legyen. ( f > 0, jelentése far távoli. A normalizálás tehát most azt jelenti, hogy a közeli és távoli síkok közötti pontok vetületének harmadik koordinátája 1 és 1 közé essen.) Tehát z = n-re z = 1; z = f -re z = 1. Így az alábbi egyenletrendszert kapjuk: Az egyenletrendszert megoldva, A vetítési mátrix tehát V = f = A f + B n = An + B. A = f + n n f, B = 2 f n n f. 2n r+l r l 0 r l 0 2n t+b 0 t b t b 0 f +n 2 f n 0 0 n f n f (5.20) A normalizált képernyőn tehát az (x, y, z) R 3 térbeli pont vetületének koordinátáit az alábbi séma szerint kapjuk: (x, y, z) V(x, y, z, 1) t = (x 1, x 2, x 3, x 4 ) t A normalizált képernyőn ( x1, x ) 2 x 4 x 4 ( x1, x 2, x ) t 3. x 4 x 4 x 4 egy pont (amit az (x, y, z) pont színével kivilágítunk), az x 3 /x 4 koordinátát a képernyő az ún. z-tárban őrzi. Az (5.20) mátrix pontosan az OpenGL centrális vetítéshez használt mátrixa. A szelekció probléma A képernyőn egy 3D jelenet van. Egér kattintással szeretnénk az egyik objektumot kijelölni, lényegében a vetítést szeretnénk invertálni. Ha z-tárat

50 50 nem alkalmazunk, akkor a vetítés nem invertálható, a vetítés centrumát a képernyőn kijelölt ponttal összekötve a térbeli pont irányát kaphatjuk csak meg. z-tár alkalmazása esetén azonban a vetítés invertálható lesz, az (5.20) mátrix invertálhatósága miatt. Az egyszerűség kedvéért csak a normalizált képernyővel (pontosabban z-tárral ellátott normalizált képernyővel) dolgozunk, a valóságban először az (5.14) leképezést is invertálni kell. (5.20) inverzének meghatározásához a mátrix szorzás elvégzésével ellenőrizhető, hogy ha a megfelelő mátrix elemek nem nullák, akkor a 11 0 a a 22 a a 33 a a a a 11 1 a 0 = a a , 1 a a34 a 34 így V 1 = 2n r+l r l 0 r l 0 2n t+b 0 t b t b 0 f +n 2 f n 0 0 n f n f r l r+l 2n 0 0 2n t b t+b 0 2n 0 2n = n f 2 f n f +n 2 f n A képernyőn a (X, Y, Z) vetületi pont kijelölésével megkapjuk a térbeli ős pontot homogén koordinátákkal ahonnan V 1 (X, Y, Z, 1) t = (x 1, x 2, x 3, x 4 ), P = ( x1, x 2, x ) 3, x 4 x 4 x 4 a keresett pont. Ezután még azt is el kell dönteni, hogy a pont melyik alakzathoz tartozik. A gömbök tesztelése egyszerű, P akkor és csakis akkor az M középpontú, r sugarú gömb pontja, ha M P 2 = r 2. (Az ilyen tesztet természetesen mindig egy hibát megengedve kell elvégezni. Azt is megfigyelhetjük, hogy szokásos módon nem a távolságot, hanem a négyzetét teszteljük a gyökvonást elkerülendő.) A pont és doboz helyzetének eldöntését is ismerjük, ld. a 2.4. szakaszt.

51 6 TÁV O L S Á G O K K I S Z Á M Í TÁ S A É S Ü T K Ö Z É S E K D E T E K TÁ L Á S A Nagy csattanások, brutális ütközések sokan ezért szeretik a játékprogramokat. Az ütközések detektálásának alapja a távolságok számítása. A távolságok meghatározásának alapja, hogy meg tudjuk határozni két pont távolságát meg tudjuk határozni egy vektor adott irányra vonatkozó merőleges vetületének hosszát. Mindkét kérdéssel foglalkoztunk az 1. fejezetben. 6.1 pont és sík távolsága Legyen (X X 0 ) n = 0 egy sík egyenlete, tehát a sík az X 0 pontra illeszkedik és normálvektora n. Határozzuk meg egy teszőleges P pontnak a távolságát ettől a síktól! A keresett érték nem más, mint a P X 0 vektor n irányára vonatkozó vetületének hossza: d = (P X 0) n. (6.1) n Érdemes megjegyezni, hogy (6.1) számlálójában az abszolút értéket elhagyva tesztelni tudjuk, hogy két pontot a sík elválaszt-e. Tegyük fel, hogy a pontok nincsenek a síkon. sgn(p X 0 ) n = sgn(q X 0 ) n = P-t és Q-t S nem választja el sgn(p X 0 ) n = sgn(q X 0 ) n = P-t és Q-t S elválasztja. Gömb és sík kölcsönös helyzete A játékunkban egy labda (billiárdgolyó) mozog, a mozgás folyamán tesztelnünk kell, hogy elér-e a labda egy falat? Azt kell meghatározni, hogy 51

52 52 egy középpontjával és sugarával adott gömb és egy sík távolsága mennyi. A probléma egyszerűen visszavezethető a középpont és a sík távolságára. Jelölje a gömb középpontját C, sugarát R, a síkot S! d(c, S) a középpont és a sík távolsága. Tehát a keresett távolság { d(c, S) R, ha d(c, S) R > 0 d = (6.2) 0, ha d(c, S) R pont és egyenes távolsága A pontból az egyenesre bocsátott merőleges szakasz hosszát kell kiszámítani. A módszer négyzetgyök vonást is használ, így ha csak távolságok összehasonlítása a cél, akkor a távolságok helyett elegendő a négyzeteiket összehasonlítani, elkerülve a drága gyökvonást. Legyen az adott pont P R 3, az egyenes pedig X 0 X 1 (16. Ábra). A P X 0 X 1 P X 0 P 16. ábra. Pont és egyenes távolsága vektor egyenesre vonatkozó merőleges vetületének hossza (P X 0 ) (X 1 X 0 ), X 1 X 0 így Pitagorasz tételéből a távolság négyzete d 2 = P X 0 2 ((P X 0) (X 1 X 0 )) 2 X 1 X 0 2. (6.3)

53 53 (6.3)-ból egyszerű átalakítással más formában is megadhatjuk az eredményt: d 2 = (X 1 X 0 ) (P X 0 ) 2 X 1 X két egyenes távolsága Legyen az egyik egyenes X 0 X 1, míg a másik egyenes Y 0 Y 1. Távolságuk nem más, mint annak a szakasznak a hossza, amely mindkét egyenesre merőleges. Ha az egyenesek párhuzamosak, akkor ez a szakasz nem egyértelmű, és ekkor az egyik egyenesen felvett tetszőleges pontnak a másik egyenestől mért távolságát kell meghatározni. Egyébként a mindkét egyenesre merőleges szakasz egyértelmű. Ha történetesen az egyenesek metszik egymást, akkor az előbbi szakasz elfajuló, azaz egyetlen pontból áll. Foglalkozzunk a nem párhuzamos egyenesek kérdésével. Mindkét egyenesre merőleges vektort n = (X 1 X 0 ) (Y 1 Y 0 ) ad. Erre az irányra kell az Y 0 X 0 vektort merőlegesen vetíteni. Így d = (Y 0 X 0 ) n. (6.4) n 6.4 doboz és sík távolsága Ha a doboz minden csúcsa a sík egyik oldalán van (de nem a síkon), akkor a csúcsok távolságainak minimuma adja a doboz és a sík távolságát. Ha a doboznak vannak a síkon csúcsai, vagy a sík csúcsokat választ el, akkor a távolság 0. Ha a sík egyenlete (X X 0 ) n = 0 és n egységvektor, akkor a P pont előjeles távolsága a síktól (P X 0 ) n. Tehát először mindegyik csúcsra kiszámítjuk a csúcs előjeles távolságát a síktól. Ha a nyolc szám között van zérus, vagy két ellentétes előjelű, akkor a keresett távolság 0. Ellenkező esetben d = min{ (P i X 0 ) n i = 0,... 7}, ahol P 0,..., P 7 jelöli a csúcsokat. Második módszerként megismerünk egy nagyon fontos koncepciót használó, kevesebb skaláris szorzás elvégzésével járó eljárást. Először vizsgáljunk síkbeli dobozt, azaz téglalapot, illetve téglalap és egyenes kölcsönös helyzetét! A 17. ábrán a téglalap középpontja C, a fél oldalvektorok u és v (azaz a téglalap csúcsai C ± u ± v); míg az egyenest S jelöli. A cél, hogy (6.5)-höz hasonló, egyszerű eljárást kapjunk. Ehhez egy nagyon fontos koncepciót kell megismernünk, a doboz effektív sugarát. Az effektív sugár mindig egy

54 54 v v u C r e C S n P 17. ábra. Doboz effektív sugara irányra vonatkozik. Ha az irányt az n egységvektor adja meg, és a doboz fél-odalvektorai u és v, akkor a doboz effektív sugara r e = u n + v n. A 17. ábrán láthatjuk, hogy az effektív sugár kétszerese megadja a téglalapnak egy n irányú egyenesre vonatkozó árnyékának hosszát, ha a vetítés n-re merőleges irányú. (Az ábrán a vetítés irányát jelzik a szaggatott vonalak. Mivel az ábrán n az S egyenes egy normálvektora, a vetítési irány párhuzamos S-el.) Ezek után a téglalap és az S távolsága megállapítható a C középpontú, r e sugarú körlemez és S távolságából. (Az ábrán az n irányú egyenes akár át is mehet C-n, s akkor C = C.) Azaz { d(c, S) r e, ha d(c, S) r e > 0 d = (6.5) 0, ha d(c, S) r e 0. Az előbbieket nagyon könnyű kiterjeszteni térbe. Ha egy téglatest fél élvektorai u, v és w; n pedig egy egységvektor, akkor a téglatest effektív sugara n irányára vonatkozóan r e = u n + v n + w n. (6.6)

55 55 Ha a téglatest középpontja C (azaz a csúcsok C ± u ± v ± w), az S sík normál egységvektora pedig n, akkor a téglatest és a sík távolsága egyenlő a C középpontú, r e sugarú gömb és S távolságával, ahol r e a (6.6)-tal van adva. 6.5 gömb távolsága doboztól Doboz alatt síkban téglalapot, térbe téglatestet értünk, ez lehet egy bonyolultabb formát körülölelő doboz is. Először egy egyszerű egy-dimenziós problémát tanulmányozunk: mennyi a számegyenes u R pontjának távolsága a [ a, a] intervallumtól (a > 0)? Egyszerű megfontolás mutatja, hogy a távolság d 1 (u, [ a, a]) = max{0, u a, u a}. Ugyanis u > a esetben u a > 0, u a < 0, tehát max{0, u a, u a} = u a, ami valóban megegyezik a pont és az intervallum távolságával. a u a esetén a távolság természetesen nulla, és valóban, u a < 0, u a < 0 miatt ez megegyezik max{0, u a, u a} = 0 értékével. Hasonlóan, u < a esetén 0, u a, u a közül csak u a pozitív, és ez a pozitív érték valóban megegyezik a pont és az intervallum távolságával. Két-dimenzióban hasonlóan adhatunk választ arra a kérdésre, hogy mennyi egy u = (u 1, u 1 ) R 2 pont távolsága a T 0 = [ a, a] [ b, b] téglalaptól: d 2 (u, T) = d 2 1 (u 1, [ a, a]) + d 2 1 (u 2, [ b, b]) = = max 2 {0, u 1 a, u 1 a} + max 2 {0, u 2 b, u 2 b}. A probléma általában ettől bonyolultabb, mert a téglalap nem feltétlenül az előbbi szabályos pozícióban van. (Ti. a középpont az előbbiekben az origó, a téglalap oldalai a koordináta-tengelyekkel párhuzamosak.) Valójában az általános esetet nagyon könnyű visszavezetni erre az egyszerű esetre. Ha az előbbi T 0 téglalappal egybevágó T téglalap a T 0 -ból az (A, v) mozgással származik, akkor az (A, v) 1 inverz mozgás T-t T 0 -ba, u-t egy u = (A, v) 1 u pontba viszi, azaz u és T 0 helyzetét kell vizsgálni az előbbi módon. Ezt az irányba állító mozgást a 44. oldalon tanultuk. Ezek után könnyen általánosítható, hogy a térbeli problémánál a B = [ a, a] [ b, b] [ c, c] szabályos elhelyezkedésű doboz és az u = (u 1, u 2, u 3 ) pont távolsága d 2 (u, B) = d 2 1 (u 1, [ a, a]) + d 2 1 (u 2, [ b, b]) + d 2 1 (u 3, [ c, c]). A B doboz és az u középpontú r sugarú gömb ütközik, ha d(u, B) = r.

56 szeparáló56 egyenes 18. ábra. Két nem átfedő téglalap szeparáló egyenese 6.6 doboz távolsága doboztól A doboz-doboz ütközés detektálását inkább az elkerülés detektálására lehet visszavezetni. Térben két doboz nem átfedő, ha síkkal szeparálni lehet azokat, azaz tudunk olyan síkot állítani, amelynek az egyik doboz az egyik oldalán, a mások doboz a másik oldalán van. Síkban két téglalap nem átfedő, ha egyenesekkel szeparálhatók. Ha van szeparáló sík (egyenes), akkor a dobozok síkra (egyenesre) merőleges egyenesre vonatkozó merőleges vetületei nem átfedő szakaszok, ld. 18. ábra. A szeparáló síkra (egyenesre) merőleges egyenest nevezzük a továbbiakban szeparáló tengelynek. Három kérdést kell megválaszolnunk a továbbiakban: 1. Hogyan határozzuk meg egy doboz vetületét egy egyenesre? 2. A számegyenesen két intervallum átfedését hogyan állapítjuk meg? 3. Hogyan választjuk ki azokat az irányokat, amelyekre vetítve az elkerülést megállapíthatjuk. Hogyan határozzuk meg egy doboz vetületét egy egyenesre? Ha az adott egyenes az X 0 X 1 egyenes, akkor a P pont merőleges vetülete P = X 0 + (P X 0) (X 1 X 0 ) X 1 X 0 2 (X 1 X 0 ).

57 57 Az egyenest most koordinátázzuk olyan módon, hogy a zérus pont X 0 legyen (másképpen fogalmazva, feltehetjük, hogy az egyenes átmegy az origón), az egység-pont pedig X 1. P koordinátája a számegyenesen megmutatja, hogy (P X 0 ) = P hányszorosa (X 1 X 0 ) = X 1 -nek, azaz P vetületének koordinátája P X 1 X 1 2. Mivel X 1 2 minden P-re ugyanaz a pozitív szám, és csak a koordináták közötti kisebb-nagyobb reláció megállapítására van szükség, elegendő az előbbi kifejezés számlálóját használni koordinátaként: P X 1. Ha a doboz mindegyik csúcsát vetítjük az egyenesre, akkor a legkisebb és a legnagyobb koordináták adják a vetületi intervallum határait. A számegyenesen két intervallum átfedését hogyan állapítjuk meg? Egy I 1 = [a min, a max ] és I 2 = [b min, b max ] akkor és csakis akkor nem átfedő, ha I 2 az I 1 -től jobbra van, vagy balra van: a max < b min vagy b max < a min Hogyan választjuk ki azokat az irányokat, amelyekre vetítve az elkerülést megállapíthatjuk. A legegyszerűbb teszt, ha a dobozoknak a koordináta-tengelyekre vonatkozó merőleges vetületeinek átfedését vizsgáljuk. Egy adott irányban, mondjuk az x-tengely irányában egy doboz merőleges vetületét úgy határozzuk meg, hogy vesszük a csúcsok első koordinátáinak minimumát és maximumát, ez a két érték határozza meg a vetületi intervallumot. (Tulajdonképpen a problémát olyan keretező dobozok átfedésének vizsgálatára vezettük vissza, melynek élei a koordináta-tengelyek irányába esnek. Az ilyen keretező dobozt Bounding Boxnak nevezik. Általánosan, a Bounding Box úgy tartalmazza az alakzatot, hogy a doboz élei a koordináta-tengelyekkel párhuzamosak.) Ha a Bounding Boxok nem átfedőek, akkor a két eredeti alakzat sem átfedő, de fordítva már nem igaz: a Bounding Boxok lehetnek átfedőek úgy, hogy az alakzatok nem átfedőek. (Ismerős? A játékban úgy látszik, hogy elkerültük az ütközést, de a program mégis robbanást produkál. Ez azért lehet, mert a program az alakzattól általában bővebb keretező dobozok ütközését figyelte.) Ha precízebb ütközés detektálást akarunk, a keretező dobozok ütközését akkor is célszerű előzetes tesztként elvégezni, annak gyorsasága miatt. A síkban be lehet látni, hogy ha két téglalap nem átfedő, akkor van olyan szeparáló egyenes, mely az egyik téglalap valamelyik oldalával párhuza-

58 ábra. Az élirányok tesztelése nem elegendő mos. Így elegendő a dobozok merőleges vetületét olyan egyenesekre képezni, amelyek iránya megegyezik a dobozok oldalainak irányával, tehát összesen négy egyenesre vonatkozóan vizsgáljuk a merőleges vetületek átfedését. Ha az oldalirányokra vonatkozó vetületi intervallumok nem átfedőek, akkor a téglalapok biztosan nem átfedőek. Az analóg térbeli tétel az lenne, hogy elegendő a dobozok éleinek irányát, tehát hat irányt vizsgálni, azonban ez az állítás már nem igaz. (Ld. 19. ábra!) Sokkal több irányra, összesen tizenöt irányra van szükség. A térben a dobozok három-három éle legyen (a 1, b 1, c 1 ) és (a 2, b 2, c 2 ). Be lehet látni, hogy a vizsgálandó irányok a 1, b 1, c 1, a 2, b 2, c 2, a 1 a 2, a 1 b 2, a 1 c 2, b 1 a 2, b 1 b 2, b 1 c 2, c 1 a 2, c 1 b 2, c 1 c 2. Ha az előforduló vektoriális szorzatok valamelyike zérus, azaz a dobozok egy-egy éle párhuzamos, akkor a vektoriális szorzat nem határoz meg irányt. Ha az élirányokra, valamint a (nem párhuzamos) élpárokra merőleges irányokra vonatkozó vetületi intervallumok nem átfedőek, akkor a dobozok biztosan nem átfedőek.

Összeállította: dr. Leitold Adrien egyetemi docens

Összeállította: dr. Leitold Adrien egyetemi docens Az R 3 tér geometriája Összeállította: dr. Leitold Adrien egyetemi docens 2008.09.08. 1 Vektorok Vektor: irányított szakasz Jel.: a, a, a, AB, Jellemzői: irány, hosszúság, (abszolút érték) jel.: a Speciális

Részletesebben

Lineáris algebra mérnököknek

Lineáris algebra mérnököknek B U D A P E S T I M Ű S Z A K I M A T E M A T I K A É S G A Z D A S Á G T U D O M Á N Y I I N T É Z E T E G Y E T E M Lineáris algebra mérnököknek BMETE93BG20 Vektorok a 2- és 3-dimenziós tér Kf87 2017-09-05

Részletesebben

KOVÁCS BÉLA, MATEMATIKA I.

KOVÁCS BÉLA, MATEMATIKA I. KOVÁCS BÉLA MATEmATIkA I 8 VIII VEkTOROk 1 VEkTOR Vektoron irányított szakaszt értünk Jelölése: stb Vektorok hossza A vektor abszolút értéke az irányított szakasz hossza Ha a vektor hossza egységnyi akkor

Részletesebben

Matematika A1a Analízis

Matematika A1a Analízis B U D A P E S T I M Ű S Z A K I M A T E M A T I K A É S G A Z D A S Á G T U D O M Á N Y I I N T É Z E T E G Y E T E M Matematika A1a Analízis BMETE90AX00 Vektorok StKis, EIC 2019-02-12 Wettl Ferenc ALGEBRA

Részletesebben

Számítógépes Grafika mintafeladatok

Számítógépes Grafika mintafeladatok Számítógépes Grafika mintafeladatok Feladat: Forgassunk a 3D-s pontokat 45 fokkal a X tengely körül, majd nyújtsuk az eredményt minden koordinátájában kétszeresére az origóhoz képest, utána forgassunk

Részletesebben

KOVÁCS BÉLA, MATEMATIKA I.

KOVÁCS BÉLA, MATEMATIKA I. KOVÁCS BÉLA MATEmATIkA I 6 VI KOmPLEX SZÁmOk 1 A komplex SZÁmOk HALmAZA A komplex számok olyan halmazt alkotnak amelyekben elvégezhető az összeadás és a szorzás azaz két komplex szám összege és szorzata

Részletesebben

Számítási feladatok a Számítógépi geometria órához

Számítási feladatok a Számítógépi geometria órához Számítási feladatok a Számítógépi geometria órához Kovács Zoltán Copyright c 2012 Last Revision Date: 2012. október 15. kovacsz@nyf.hu Technikai útmutató a jegyzet használatához A jegyzet képernyőbarát

Részletesebben

Vektorok összeadása, kivonása, szorzás számmal, koordináták

Vektorok összeadása, kivonása, szorzás számmal, koordináták Vektorok összeadása, kivonása, szorzás számmal, koordináták 1. Mik lesznek a P (3, 4, 8) pont C (3, 7, 2) pontra vonatkozó tükörképének a koordinátái? 2. Egy szabályos hatszög középpontja K (4, 1, 4),

Részletesebben

Matematika (mesterképzés)

Matematika (mesterképzés) Matematika (mesterképzés) Környezet- és Településmérnököknek Debreceni Egyetem Műszaki Kar, Műszaki Alaptárgyi Tanszék Vinczéné Varga A. Környezet- és Településmérnököknek 2016/2017/I 1 / 29 Lineáris tér,

Részletesebben

Valasek Gábor valasek@inf.elte.hu

Valasek Gábor valasek@inf.elte.hu Számítógépes Grafika Valasek Gábor valasek@inf.elte.hu Eötvös Loránd Tudományegyetem Informatikai Kar 2013/2014. őszi félév ( Eötvös LorándSzámítógépes TudományegyetemInformatikai Grafika Kar) 2013/2014.

Részletesebben

Vektorok, mátrixok, lineáris egyenletrendszerek

Vektorok, mátrixok, lineáris egyenletrendszerek a Matematika mérnököknek I. című tárgyhoz Vektorok, mátrixok, lineáris egyenletrendszerek Vektorok A rendezett valós számpárokat kétdimenziós valós vektoroknak nevezzük. Jelölésükre latin kisbetűket használunk.

Részletesebben

1. A Hilbert féle axiómarendszer

1. A Hilbert féle axiómarendszer {Euklideszi geometria} 1. A Hilbert féle axiómarendszer Az axiómarendszer alapfogalmai: pont, egyenes, sík, illeszkedés (pont egyenesre, pont síkra, egyenes síkra), közte van reláció, egybevágóság (szögeké,

Részletesebben

Vektorok és koordinátageometria

Vektorok és koordinátageometria Vektorok és koordinátageometria Vektorral kapcsolatos alapfogalmak http://zanza.tv/matematika/geometria/vektorok-bevezetese Definíció: Ha egy szakasz két végpontját megkülönböztetjük egymástól oly módon,

Részletesebben

Analitikus térgeometria

Analitikus térgeometria Analitikus térgeometria Wettl Ferenc el adása alapján 2015.09.21. Wettl Ferenc el adása alapján Analitikus térgeometria 2015.09.21. 1 / 23 Tartalom 1 Egyenes és sík egyenlete Egyenes Sík 2 Alakzatok közös

Részletesebben

Diszkrét matematika I., 12. előadás Dr. Takách Géza NyME FMK Informatikai Intézet takach november 30.

Diszkrét matematika I., 12. előadás Dr. Takách Géza NyME FMK Informatikai Intézet   takach november 30. 1 Diszkrét matematika I, 12 előadás Dr Takách Géza NyME FMK Informatikai Intézet takach@infnymehu http://infnymehu/ takach 2005 november 30 Vektorok Definíció Egy tetszőleges n pozitív egész számra n-komponensű

Részletesebben

Analitikus térgeometria

Analitikus térgeometria 5. fejezet Analitikus térgeometria Kezd és végpontjuk koordinátáival adott vektorok D 5.1 A koordináta-rendszer O kezd pontjából a P pontba mutató OP kötött vektort a P pont helyvektorának nevezzük. T

Részletesebben

= Y y 0. = Z z 0. u 1. = Z z 1 z 2 z 1. = Y y 1 y 2 y 1

= Y y 0. = Z z 0. u 1. = Z z 1 z 2 z 1. = Y y 1 y 2 y 1 Egyenes és sík a térben Elméleti áttekintés Az egyenes paraméteres egyenlete: X = u 1 λ + x 0 Y = u λ + y 0, Z = u λ + z 0 ahol a λ egy valós paraméter Az u = (u 1, u, u ) az egyenes irányvektora és P

Részletesebben

Az egyenes és a sík analitikus geometriája

Az egyenes és a sík analitikus geometriája Az egyenes és a sík analitikus geometriája Az egyenes a kétdimenziós koordinátarendszerben A kétdimenziós koordinátarendszerben az egyenest egy n(a, B) normálvektorával és egy r 0 helyvektorú P(x 0,y 0

Részletesebben

Vektorgeometria (2) First Prev Next Last Go Back Full Screen Close Quit

Vektorgeometria (2) First Prev Next Last Go Back Full Screen Close Quit Vektorgeometria (2) First Prev Next Last Go Back Full Screen Close Quit 1. Tekintsünk a térben egy P (p 1, p 2, p 3 ) pontot és egy v = (v 1, v 2, v 3 ) = 0 vektort. Ekkor pontosan egy egyenes létezik,

Részletesebben

Klár Gergely 2010/2011. tavaszi félév

Klár Gergely 2010/2011. tavaszi félév Számítógépes Grafika Klár Gergely tremere@elte.hu Eötvös Loránd Tudományegyetem Informatikai Kar 2010/2011. tavaszi félév Tartalom Pont 1 Pont 2 3 4 5 Tartalom Pont Descartes-koordináták Homogén koordináták

Részletesebben

9. előadás. Térbeli koordinátageometria

9. előadás. Térbeli koordinátageometria 9. előadás Térbeli koordinátageometria Koordinátageometria a térben Descartes-féle koordinátarendszerben dolgozunk. A legegyszerűbb alakzatokat fogjuk vizsgálni. Az ezeket leíró egyenletek első-, vagy

Részletesebben

Determinánsok. A determináns fogalma olyan algebrai segédeszköz, amellyel. szolgáltat az előbbi kérdésekre, bár ez nem mindig hatékony.

Determinánsok. A determináns fogalma olyan algebrai segédeszköz, amellyel. szolgáltat az előbbi kérdésekre, bár ez nem mindig hatékony. Determinánsok A determináns fogalma olyan algebrai segédeszköz, amellyel jól jellemezhető a mátrixok invertálhatósága, a mátrix rangja. Segítségével lineáris egyenletrendszerek megoldhatósága dönthető

Részletesebben

15. LINEÁRIS EGYENLETRENDSZEREK

15. LINEÁRIS EGYENLETRENDSZEREK 15 LINEÁRIS EGYENLETRENDSZEREK 151 Lineáris egyenletrendszer, Gauss elimináció 1 Definíció Lineáris egyenletrendszernek nevezzük az (1) a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21 x 1 + a 22 x 2 + + a

Részletesebben

10. Koordinátageometria

10. Koordinátageometria I. Nulladik ZH-ban láttuk: 0. Koordinátageometria. Melyek azok a P x; y pontok, amelyek koordinátái kielégítik az Ábrázolja a megoldáshalmazt a koordináta-síkon! x y x 0 egyenlőtlenséget? ELTE 00. szeptember

Részletesebben

I. VEKTOROK, MÁTRIXOK

I. VEKTOROK, MÁTRIXOK 217/18 1 félév I VEKTOROK, MÁTRIXOK I1 I2 Vektorok 1 A síkon derékszögű koordinátarendszerben minden v vektornak van vízszintes és van függőleges koordinátája, ezeket sorrendben v 1 és v 2 jelöli A v síkbeli

Részletesebben

Lineáris algebra mérnököknek

Lineáris algebra mérnököknek B U D A P E S T I M Ű S Z A K I M A T E M A T I K A É S G A Z D A S Á G T U D O M Á N Y I I N T É Z E T E G Y E T E M Lineáris algebra mérnököknek BMETE93BG20 Vektorok a 2- és 3-dimenziós tér Kf81 2018-09-04

Részletesebben

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT Koordináta-geometria

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT Koordináta-geometria MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT Koordináta-geometria A szürkített hátterű feladatrészek nem tartoznak az érintett témakörhöz, azonban szolgálhatnak fontos információval az érintett

Részletesebben

GEOMETRIA 1, alapszint

GEOMETRIA 1, alapszint GEOMETRIA 1, alapszint Kiss György 4-723 Fogadóóra: péntek 8. 15-10. 00 email: kissgy@cs.elte.hu Előadás: 11. 15-13. 45, közben egyszer 15 perc szünet GEOMETRIA 1, alapszint Ajánlott irodalom: Hajós Gy.:

Részletesebben

Budapesti Műszaki Főiskola, Neumann János Informatikai Kar. Vektorok. Fodor János

Budapesti Műszaki Főiskola, Neumann János Informatikai Kar. Vektorok. Fodor János Budapesti Műszaki Főiskola, Neumann János Informatikai Kar Lineáris algebra 1. témakör Vektorok Fodor János Copyright c Fodor@bmf.hu Last Revision Date: 2006. szeptember 11. Version 1.1 Table of Contents

Részletesebben

Vektorterek. =a gyakorlatokon megoldásra ajánlott

Vektorterek. =a gyakorlatokon megoldásra ajánlott Vektorterek =a gyakorlatokon megoldásra ajánlott 40. Alteret alkotnak-e a valós R 5 vektortérben a megadott részhalmazok? Ha igen, akkor hány dimenziósak? (a) L = { (x 1, x 2, x 3, x 4, x 5 ) x 1 = x 5,

Részletesebben

1. Mátrixösszeadás és skalárral szorzás

1. Mátrixösszeadás és skalárral szorzás 1 Mátrixösszeadás és skalárral szorzás Mátrixok tömör jelölése T test Az M = a i j T n m azt az n sorból és m oszlopból álló mátrixot jelöli, amelyben az i-edik sor j-edik eleme a i j T Példák [ ] Ha M

Részletesebben

Vektorgeometria (1) First Prev Next Last Go Back Full Screen Close Quit

Vektorgeometria (1) First Prev Next Last Go Back Full Screen Close Quit Vektorgeometria (1) First Prev Next Last Go Back Full Screen Close Quit 1. A térbeli irányított szakaszokat vektoroknak hívjuk. Két vektort egyenlőnek tekintünk, ha párhuzamos eltolással fedésbe hozhatók.

Részletesebben

Nagy András. Feladatok a koordináta-geometria, egyenesek témaköréhez 11. osztály 2010.

Nagy András. Feladatok a koordináta-geometria, egyenesek témaköréhez 11. osztály 2010. Nagy András Feladatok a koordináta-geometria, egyenesek témaköréhez 11. osztály 010. Feladatok a koordináta-geometria, egyenesek témaköréhez 11. osztály 1) Döntsd el, hogy a P pont illeszkedik-e az e egyenesre

Részletesebben

x = cos αx sin αy y = sin αx + cos αy 2. Mi a X/Y/Z tengely körüli forgatás transzformációs mátrixa 3D-ben?

x = cos αx sin αy y = sin αx + cos αy 2. Mi a X/Y/Z tengely körüli forgatás transzformációs mátrixa 3D-ben? . Mi az (x, y) koordinátákkal megadott pont elforgatás uténi két koordinátája, ha α szöggel forgatunk az origó körül? x = cos αx sin αy y = sin αx + cos αy 2. Mi a X/Y/Z tengely körüli forgatás transzformációs

Részletesebben

Lineáris algebra zárthelyi dolgozat javítókulcs, Informatika I. 2005.márc.11. A csoport

Lineáris algebra zárthelyi dolgozat javítókulcs, Informatika I. 2005.márc.11. A csoport Lineáris algebra zárthelyi dolgozat javítókulcs, Informatika I. 2005.márc.11. A csoport 1. Egy egyenesre esnek-e az A (2, 5, 1), B (5, 17, 7) és C (3, 9, 3) pontok? 5 pont Megoldás: Nem, mert AB (3, 12,

Részletesebben

λ 1 u 1 + λ 2 v 1 + λ 3 w 1 = 0 λ 1 u 2 + λ 2 v 2 + λ 3 w 2 = 0 λ 1 u 3 + λ 2 v 3 + λ 3 w 3 = 0

λ 1 u 1 + λ 2 v 1 + λ 3 w 1 = 0 λ 1 u 2 + λ 2 v 2 + λ 3 w 2 = 0 λ 1 u 3 + λ 2 v 3 + λ 3 w 3 = 0 Vektorok a térben Egy (v 1,v 2,v 3 ) valós számokból álló hármast vektornak nevezzünk a térben (R 3 -ban). Használni fogjuk a v = (v 1,v 2,v 3 ) jelölést. A v 1,v 2,v 3 -at a v vektor komponenseinek nevezzük.

Részletesebben

VEKTOROK. 1. B Legyen a( 3; 2; 4), b( 2; 1; 2), c(3; 4; 5), d(8; 5; 7). (a) 2a 4c + 6d [(30; 10; 30)]

VEKTOROK. 1. B Legyen a( 3; 2; 4), b( 2; 1; 2), c(3; 4; 5), d(8; 5; 7). (a) 2a 4c + 6d [(30; 10; 30)] Bodó Beáta 1 VEKTOROK 1. B Legyen a( ; 2; 4), b( 2; 1; 2), c(; 4; 5), d(8; 5; 7). (a) 2a 4c + 6d [(0; 10; 0)] (b) c + b 7a [(18; 15; 29)] (c) 2d c + b [ (5; ; ) = 6, 56] (d) 4a + 8b 7c [ ( 49; 44; 5) =

Részletesebben

12. előadás. Egyenletrendszerek, mátrixok. Dr. Szörényi Miklós, Dr. Kallós Gábor

12. előadás. Egyenletrendszerek, mátrixok. Dr. Szörényi Miklós, Dr. Kallós Gábor 12. előadás Egyenletrendszerek, mátrixok Dr. Szörényi Miklós, Dr. Kallós Gábor 2015 2016 1 Tartalom Matematikai alapok Vektorok és mátrixok megadása Tömbkonstansok Lineáris műveletek Mátrixok szorzása

Részletesebben

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT. Koordináta-geometria

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT. Koordináta-geometria MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT 1) Adott két pont: A 4; 1 felezőpontjának koordinátáit! AB felezőpontja legyen F. Koordináta-geometria és B 3 1; Írja fel az AB szakasz 1 3 4

Részletesebben

Gyakorló feladatok I.

Gyakorló feladatok I. Gyakorló feladatok I. a Matematika Aa Vektorüggvények tárgyhoz (D D5 kurzusok) Összeállította: Szili László Ajánlott irodalmak:. G.B. Thomas, M.D. Weir, J. Hass, F.R. Giordano: Thomas-féle KALKULUS I.,

Részletesebben

Koordináta-geometria feladatok (középszint)

Koordináta-geometria feladatok (középszint) Koordináta-geometria feladatok (középszint) 1. (KSZÉV Minta (1) 2004.05/I/4) Adott az A(2; 5) és B(1; 3) pont. Adja meg az AB szakasz felezőpontjának koordinátáit! 2. (KSZÉV Minta (2) 2004.05/I/7) Egy

Részletesebben

17. előadás: Vektorok a térben

17. előadás: Vektorok a térben 17. előadás: Vektorok a térben Szabó Szilárd A vektor fogalma A mai előadásban n 1 tetszőleges egész szám lehet, de az egyszerűség kedvéért a képletek az n = 2 esetben szerepelnek. Vektorok: rendezett

Részletesebben

Az egyenlőtlenség mindkét oldalát szorozzuk meg 4 16-al:

Az egyenlőtlenség mindkét oldalát szorozzuk meg 4 16-al: Bevezető matematika kémikusoknak., 04. ősz. feladatlap. Ábrázoljuk számegyenesen a következő egyenlőtlenségek megoldáshalmazát! (a) x 5 < 3 5 x < 3 x 5 < (d) 5 x

Részletesebben

Lin.Alg.Zh.1 feladatok

Lin.Alg.Zh.1 feladatok Lin.Alg.Zh. feladatok 0.. d vektorok Adott három vektor ā (0 b ( c (0 az R Euklideszi vektortérben egy ortonormált bázisban.. Mennyi az ā b skalárszorzat? ā b 0 + + 8. Mennyi az n ā b vektoriális szorzat?

Részletesebben

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Vektorok II.

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Vektorok II. Vektorok II. DEFINÍCIÓ: (Vektorok hajlásszöge) Két vektor hajlásszögének azt a φ (0 φ 180 ) szöget nevezzük, amelyet a vektorok egy közös pontból felmért reprezentánsai által meghatározott félegyenesek

Részletesebben

Geometria II gyakorlatok

Geometria II gyakorlatok Geometria II gyakorlatok Kovács Zoltán Copyright c 2011 Last Revision Date: 2012. május 8. kovacsz@nyf.hu Technikai útmutató a jegyzet használatához A jegyzet képernyőbarát technikával készült, a megjelenés

Részletesebben

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás) Matematika A2c gyakorlat Vegyészmérnöki, Biomérnöki, Környezetmérnöki szakok, 2017/18 ősz 1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás) 1. Valós vektorterek-e a következő

Részletesebben

Egyenes és sík. Wettl Ferenc szeptember 29. Wettl Ferenc () Egyenes és sík szeptember / 15

Egyenes és sík. Wettl Ferenc szeptember 29. Wettl Ferenc () Egyenes és sík szeptember / 15 Egyenes és sík Wettl Ferenc 2006. szeptember 29. Wettl Ferenc () Egyenes és sík 2006. szeptember 29. 1 / 15 Tartalom 1 Egyenes és szakasz Egyenes Szakasz Egyenesvonalú egyenletes mozgás Egyenes és pont

Részletesebben

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Megoldások

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Megoldások Megoldások 1. Határozd meg a szakasz hosszát, ha a végpontok koordinátái: A ( 1; ) és B (5; )! A szakasz hosszához számítsuk ki a két pont távolságát: d AB = AB = (5 ( 1)) + ( ) = 6 + 1 = 7 6,08.. Határozd

Részletesebben

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Geometria III.

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Geometria III. Geometria III. DEFINÍCIÓ: (Vektor) Az egyenlő hosszúságú és egyirányú irányított szakaszoknak a halmazát vektornak nevezzük. Jele: v. DEFINÍCIÓ: (Geometriai transzformáció) Geometriai transzformációnak

Részletesebben

5 1 6 (2x3 + 4) 7. 4 ( ctg(4x + 2)) + c = 3 4 ctg(4x + 2) + c ] 12 (2x6 + 9) 20 ln(5x4 + 17) + c ch(8x) 20 ln 5x c = 11

5 1 6 (2x3 + 4) 7. 4 ( ctg(4x + 2)) + c = 3 4 ctg(4x + 2) + c ] 12 (2x6 + 9) 20 ln(5x4 + 17) + c ch(8x) 20 ln 5x c = 11 Bodó Beáta ISMÉTLÉS. ch(6 d.. 4.. 6. 7. 8. 9..... 4.. e (8 d ch (9 + 7 d ( + 4 6 d 7 8 + d sin (4 + d cos sin d 7 ( 6 + 9 4 d INTEGRÁLSZÁMÍTÁS 7 6 sh(6 + c 8 e(8 + c 9 th(9 + 7 + c 6 ( + 4 7 + c = 7 4

Részletesebben

Koordináta-geometria II.

Koordináta-geometria II. Koordináta-geometria II. DEFINÍCIÓ: (Alakzat egyenlete) A síkon adott egy derékszögű koordináta rendszer. A síkban levő alakzat egyenlete olyan f (x, y) = 0 egyenlet, amelyet azoknak és csak azoknak a

Részletesebben

5. előadás. Skaláris szorzás

5. előadás. Skaláris szorzás 5. előadás Skaláris szorzás Bevezetés Két vektor hajlásszöge: a vektorokkal párhuzamos és egyirányú, egy pontból induló félegyenesek konvex szöge. φ Bevezetés Definíció: Két vektor skaláris szorzata abszolút

Részletesebben

2014/2015. tavaszi félév

2014/2015. tavaszi félév Hajder L. és Valasek G. hajder.levente@sztaki.mta.hu Eötvös Loránd Tudományegyetem Informatikai Kar 2014/2015. tavaszi félév Tartalom Geometria modellezés 1 Geometria modellezés 2 Geometria modellezés

Részletesebben

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Megoldások

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Megoldások Megoldások 1. Írd fel a K (0; 2) középpontú 7 sugarú kör egyenletét! A keresett kör egyenletét felírhatjuk a képletbe való behelyettesítéssel: x 2 + (y + 2) 2 = 49. 2. Írd fel annak a körnek az egyenletét,

Részletesebben

Műveletek mátrixokkal. Kalkulus. 2018/2019 ősz

Műveletek mátrixokkal. Kalkulus. 2018/2019 ősz 2018/2019 ősz Elérhetőségek Előadó: (safaro@math.bme.hu) Fogadóóra: hétfő 9-10 (H épület 3. emelet 310-es ajtó) A pontos tárgykövetelmények a www.math.bme.hu/~safaro/kalkulus oldalon találhatóak. A mátrix

Részletesebben

Matematika 11 Koordináta geometria. matematika és fizika szakos középiskolai tanár. > o < szeptember 27.

Matematika 11 Koordináta geometria. matematika és fizika szakos középiskolai tanár. > o < szeptember 27. Matematika 11 Koordináta geometria Juhász László matematika és fizika szakos középiskolai tanár > o < 2015. szeptember 27. copyright: c Juhász László Ennek a könyvnek a használatát szerzői jog védi. A

Részletesebben

Hajder Levente 2018/2019. II. félév

Hajder Levente 2018/2019. II. félév Hajder Levente hajder@inf.elte.hu Eötvös Loránd Tudományegyetem Informatikai Kar 2018/2019. II. félév Tartalom 1 2 3 4 5 Albrecht Dürer, 1525 Motiváció Tekintsünk minden pixelre úgy, mint egy kis ablakra

Részletesebben

Koordináta geometria III.

Koordináta geometria III. Koordináta geometria III. TÉTEL: A P (x; y) pont akkor és csak akkor illeszkedik a K (u; v) középpontú r sugarú körre (körvonalra), ha (x u) 2 + (y v) 2 = r 2. Ez az összefüggés a K (u; v) középpontú r

Részletesebben

Mátrixok 2017 Mátrixok

Mátrixok 2017 Mátrixok 2017 számtáblázatok" : számok rendezett halmaza, melyben a számok helye két paraméterrel van meghatározva. Például lineáris egyenletrendszer együtthatómátrixa 2 x 1 + 4 x 2 = 8 1 x 1 + 3 x 2 = 1 ( 2 4

Részletesebben

Hajder Levente 2014/2015. tavaszi félév

Hajder Levente 2014/2015. tavaszi félév Hajder Levente hajder.levente@sztaki.mta.hu Eötvös Loránd Tudományegyetem Informatikai Kar 2014/2015. tavaszi félév Tartalom 1 2 3 4 5 Albrecht Dürer, 1525 Motiváció Tekintsünk minden pixelre úgy, mint

Részletesebben

egyenletrendszert. Az egyenlő együtthatók módszerét alkalmazhatjuk. sin 2 x = 1 és cosy = 0.

egyenletrendszert. Az egyenlő együtthatók módszerét alkalmazhatjuk. sin 2 x = 1 és cosy = 0. Magyar Ifjúság. X. TRIGONOMETRIKUS FÜGGVÉNYEK A trigonometrikus egyenletrendszerek megoldása során kísérletezhetünk új változók bevezetésével, azonosságok alkalmazásával, helyettesítő módszerrel vagy más,

Részletesebben

= 7, a 3. = 7; x - 4y =-8; x + 2y = 10; x + y = 7. C-bôl induló szögfelezô: (-2; 3). PA + PB = PA 1. (8; -7), n(7; 8), 7x + 8y = 10, x = 0 & P 0;

= 7, a 3. = 7; x - 4y =-8; x + 2y = 10; x + y = 7. C-bôl induló szögfelezô: (-2; 3). PA + PB = PA 1. (8; -7), n(7; 8), 7x + 8y = 10, x = 0 & P 0; 98 Az egyenes egyenletei. a) A( 0) B(0 6) AB_ - 6i& n( ) x + y = b) x - y =- c) 6x - y = 0 d) 6x + y = e) x + y = f) x + y = a g) x - y = a.. A(a 0) B(0 b) AB_ -a bi n (b a) bx + ay = ab osszuk el a $

Részletesebben

Testek. 16. Legyen z = 3 + 4i, w = 3 + i. Végezzük el az alábbi. a) (2 4), Z 5, b) (1, 0, 0, 1, 1) (1, 1, 1, 1, 0), Z 5 2.

Testek. 16. Legyen z = 3 + 4i, w = 3 + i. Végezzük el az alábbi. a) (2 4), Z 5, b) (1, 0, 0, 1, 1) (1, 1, 1, 1, 0), Z 5 2. Vektorok. Melyek egyenlőek az alábbi vektorok közül? (a) (, 2, 0), (b) az (, 0, ) pontból a (2, 2, ) pontba mutató vektor, (c) ( 2,, ) ( 2,, 2), (d) [ 2 0 ], (e) 2. 0 2. Írjuk fel az x + y + 2z = 0 és

Részletesebben

Geometria 1 normál szint

Geometria 1 normál szint Geometria 1 normál szint Naszódi Márton nmarci@math.elte.hu www.math.elte.hu/ nmarci ELTE TTK Geometriai Tsz. Budapest Geometria 1 p.1/4 Vizsga 1 Írásban, 90 perc. 2 Személyazonosságot igazoló okmány nélkül

Részletesebben

Matematika szigorlat június 17. Neptun kód:

Matematika szigorlat június 17. Neptun kód: Név Matematika szigorlat 014. június 17. Neptun kód: 1.. 3. 4. 5. Elm. Fel. Össz. Oszt. Az eredményes szigorlat feltétele elméletből legalább 0 pont, feladatokból pedig legalább 30 pont elérése. A szigorlat

Részletesebben

Lineáris egyenletrendszerek

Lineáris egyenletrendszerek Lineáris egyenletrendszerek Lineáris egyenletrendszernek nevezzük az a 11 x 1 + a 12 x 2 +... +a 1n x n = b 1 a 21 x 1 + a 22 x 2 +... +a 2n x n = b 2.. a k1 x 1 + a k2 x 2 +... +a kn x n = b k n ismeretlenes,

Részletesebben

Függvények Megoldások

Függvények Megoldások Függvények Megoldások ) Az ábrán egy ; intervallumon értelmezett függvény grafikonja látható. Válassza ki a felsoroltakból a függvény hozzárendelési szabályát! a) x x b) x x + c) x ( x + ) b) Az x függvény

Részletesebben

Első zárthelyi dolgozat megoldásai biomatematikából * A verzió

Első zárthelyi dolgozat megoldásai biomatematikából * A verzió Első zárthelyi dolgozat megoldásai biomatematikából * A verzió Elméleti kérdések: E. Mikor nevezünk egy gráfot gyengén és mikor erősen összefüggőnek? Adjon példát gyengén összefüggő de erősen nem összefüggő

Részletesebben

Transzformációk síkon, térben

Transzformációk síkon, térben Transzformációk síkon, térben Leképezés, transzformáció Leképezés: Ha egy A ponttér pontjaihoz egy másik B ponttér pontjait kölcsönösen egyértelműen rendeljük hozzá, akkor ezt a hozzárendelést leképezésnek

Részletesebben

I. Vektorok. Adott A (2; 5) és B ( - 3; 4) pontok. (ld. ábra) A két pont által meghatározott vektor:

I. Vektorok. Adott A (2; 5) és B ( - 3; 4) pontok. (ld. ábra) A két pont által meghatározott vektor: I. Vektorok 1. Vektorok összege Általánosan: Az ábra alapján Adott: a(4; 1) és b(; 3) a + b (4 + ; 1 + 3) = (6; ) a(a 1 ; a ) és b(b 1 ; b ) a + b(a 1 + b 1 ; a + b ). Vektorok különbsége Általánosan:

Részletesebben

1. zárthelyi,

1. zárthelyi, 1. zárthelyi, 2009.10.20. 1. Írjuk fel a tér P = (0,2,4) és Q = (6, 2,2) pontjait összekötő szakasz felezőmerőleges síkjának egyenletét. 2. Tekintsük az x + 2y + 3z = 14, a 2x + 6y + 10z = 24 és a 4x+2y

Részletesebben

Térbeli transzformációk, a tér leképezése síkra

Térbeli transzformációk, a tér leképezése síkra Térbeli transzformációk, a tér leképezése síkra Homogén koordináták bevezetése térben A tér minden P pontjához kölcsönösen egyértelműen egy valós (x, y, z) számhármast rendeltünk hozzá. (Descartes-féle

Részletesebben

, D(-1; 1). A B csúcs koordinátáit az y = + -. A trapéz BD

, D(-1; 1). A B csúcs koordinátáit az y = + -. A trapéz BD Kör és egyenes kölcsönös helyzete Kör érintôje 7 9 A húr hossza: egység 9 A ( ) ponton átmenô legrövidebb húr merôleges a K szakaszra, ahol K az adott kör középpontja, feltéve, hogy a kör belsejében van

Részletesebben

Egyenletek, egyenlőtlenségek VII.

Egyenletek, egyenlőtlenségek VII. Egyenletek, egyenlőtlenségek VII. Magasabbfokú egyenletek: A 3, vagy annál nagyobb fokú egyenleteket magasabb fokú egyenleteknek nevezzük. Megjegyzés: Egy n - ed fokú egyenletnek legfeljebb n darab valós

Részletesebben

LINEÁRIS ALGEBRA. matematika alapszak. Euklideszi terek. SZTE Bolyai Intézet, őszi félév. Euklideszi terek LINEÁRIS ALGEBRA 1 / 40

LINEÁRIS ALGEBRA. matematika alapszak. Euklideszi terek. SZTE Bolyai Intézet, őszi félév. Euklideszi terek LINEÁRIS ALGEBRA 1 / 40 LINEÁRIS ALGEBRA matematika alapszak SZTE Bolyai Intézet, 2016-17. őszi félév Euklideszi terek Euklideszi terek LINEÁRIS ALGEBRA 1 / 40 Euklideszi tér Emlékeztető: A standard belső szorzás és standard

Részletesebben

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Koordináta-geometria

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Koordináta-geometria MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Koordináta-geometria A szürkített hátterű feladatrészek nem tartoznak az érintett témakörhöz, azonban szolgálhatnak fontos információval az érintett

Részletesebben

Egyenes és sík. Wettl Ferenc Wettl Ferenc () Egyenes és sík / 16

Egyenes és sík. Wettl Ferenc Wettl Ferenc () Egyenes és sík / 16 Egyenes és sík Wettl Ferenc 2012-09-20 Wettl Ferenc () Egyenes és sík 2012-09-20 1 / 16 Tartalom 1 Egyenes és szakasz Egyenes Szakasz Egyenesvonalú egyenletes mozgás Egyenes és pont távolsága 2 Sík Sík

Részletesebben

NULLADIK MATEMATIKA ZÁRTHELYI

NULLADIK MATEMATIKA ZÁRTHELYI NULLADIK MATEMATIKA ZÁRTHELYI 08-09-07 Terem: Munkaidő: 0 perc. A dolgozat megírásához íróeszközön kívül semmilyen segédeszköz nem használható! A feladatlap kizárólag kék vagy fekete tollal tölthető ki.

Részletesebben

Geometria II gyakorlatok

Geometria II gyakorlatok Geometria II gyakorlatok Kovács Zoltán Copyright c 2011 Last Revision Date: 2011. november 29. kovacsz@nyf.hu Technikai útmutató a jegyzet használatához A jegyzet képernyőbarát technikával készült, a megjelenés

Részletesebben

6. Függvények. 1. Az alábbi függvények közül melyik szigorúan monoton növekvő a 0;1 intervallumban?

6. Függvények. 1. Az alábbi függvények közül melyik szigorúan monoton növekvő a 0;1 intervallumban? 6. Függvények I. Nulladik ZH-ban láttuk: 1. Az alábbi függvények közül melyik szigorúan monoton növekvő a 0;1 intervallumban? f x g x cos x h x x ( ) sin x (A) Az f és a h. (B) Mindhárom. (C) Csak az f.

Részletesebben

Koordináta-geometria feladatok (emelt szint)

Koordináta-geometria feladatok (emelt szint) Koordináta-geometria feladatok (emelt szint) 1. (ESZÉV Minta (2) 2004.05/7) Egy ABC háromszögben CAB = 30, az ACB = 45. A háromszög két csúcsának koordinátái: A(2; 2) és C(4; 2). Határozza meg a harmadik

Részletesebben

Számítógépes Grafika mintafeladatok

Számítógépes Grafika mintafeladatok Számítógépes Grafika mintafeladatok Feladat: Forgassunk a 3D-s pontokat 45 fokkal a X tengely körül, majd nyújtsuk az eredményt minden koordinátájában kétszeresére az origóhoz képest, utána forgassunk

Részletesebben

Koordinátageometria Megoldások

Koordinátageometria Megoldások 005-0XX Középszint Koordinátageometria Megoldások 1) Adott két pont: A 4; 1 felezőpontjának koordinátáit! AB felezőpontja legyen F. és B 3 1; Írja fel az AB szakasz 1 3 + 4 + 1 3 F ; = F ;1 ) Egy kör sugarának

Részletesebben

Gauss elimináció, LU felbontás

Gauss elimináció, LU felbontás Közelítő és szimbolikus számítások 3. gyakorlat Gauss elimináció, LU felbontás Készítette: Gelle Kitti Csendes Tibor Somogyi Viktor London András Deák Gábor jegyzetei alapján 1 EGYENLETRENDSZEREK 1. Egyenletrendszerek

Részletesebben

KOVÁCS BÉLA, MATEMATIKA I.

KOVÁCS BÉLA, MATEMATIKA I. KOVÁCS BÉLA, MATEmATIkA I. 1 I. HALmAZOk 1. JELÖLÉSEk A halmaz fogalmát tulajdonságait gyakran használjuk a matematikában. A halmazt nem definiáljuk, ezt alapfogalomnak tekintjük. Ez nem szokatlan, hiszen

Részletesebben

9. Előadás. Megyesi László: Lineáris algebra, oldal. 9. előadás Mátrix inverze, mátrixegyenlet

9. Előadás. Megyesi László: Lineáris algebra, oldal. 9. előadás Mátrix inverze, mátrixegyenlet 9. Előadás Megyesi László: Lineáris algebra, 75. 84. oldal. Gondolkodnivalók Mátrix rangja 1. Gondolkodnivaló Határozzuk meg a p valós paraméter értékétől függően a következő mátrix rangját: p 3 1 2 2

Részletesebben

Vektorok. Wettl Ferenc október 20. Wettl Ferenc Vektorok október / 36

Vektorok. Wettl Ferenc október 20. Wettl Ferenc Vektorok október / 36 Vektorok Wettl Ferenc 2014. október 20. Wettl Ferenc Vektorok 2014. október 20. 1 / 36 Tartalom 1 Vektorok a 2- és 3-dimenziós térben 2 Távolság, szög, orientáció 3 Vektorok koordinátás alakban 4 Összefoglalás

Részletesebben

Minimum követelmények matematika tantárgyból 11. évfolyamon

Minimum követelmények matematika tantárgyból 11. évfolyamon Minimum követelmények matematika tantárgyból. évfolyamon A hatványozás általánosítása pozitív alap esetén racionális kitevőre. Műveletek hatványokkal. A, a 0 függvény. Az eponenciális függvény. Vizsgálata

Részletesebben

Egy sík és a koordinátasíkok metszésvonalainak meghatározása

Egy sík és a koordinátasíkok metszésvonalainak meghatározása 1 Egy sík és a koordinátasíkok metszésvonalainak meghatározása Ehhez tekintsük az 1. ábrát! 1. ábra Itt az ( u, v, w ) tengelymetszeteivel adott S síkot látjuk, az Oxyz térbeli derékszögű koordináta -

Részletesebben

Lineáris leképezések. Wettl Ferenc március 9. Wettl Ferenc Lineáris leképezések március 9. 1 / 31

Lineáris leképezések. Wettl Ferenc március 9. Wettl Ferenc Lineáris leképezések március 9. 1 / 31 Lineáris leképezések Wettl Ferenc 2015. március 9. Wettl Ferenc Lineáris leképezések 2015. március 9. 1 / 31 Tartalom 1 Mátrixleképezés, lineáris leképezés 2 Alkalmazás: dierenciálhatóság 3 2- és 3-dimenziós

Részletesebben

Bevezetés az algebrába 1

Bevezetés az algebrába 1 B U D A P E S T I M Ű S Z A K I M A T E M A T I K A É S G A Z D A S Á G T U D O M Á N Y I I N T É Z E T E G Y E T E M Bevezetés az algebrába 1 BMETE92AX23 Egyenletrendszerek H406 2016-10-03 Wettl Ferenc

Részletesebben

1. megold s: A keresett háromjegyű szám egyik számjegye a 3-as, a két ismeretlen számjegyet jelölje a és b. A feltétel szerint

1. megold s: A keresett háromjegyű szám egyik számjegye a 3-as, a két ismeretlen számjegyet jelölje a és b. A feltétel szerint A 004{005. tan vi matematika OKTV I. kateg ria els (iskolai) fordul ja feladatainak megold sai 1. feladat Melyek azok a 10-es számrendszerbeli háromjegyű pozitív egész számok, amelyeknek számjegyei közül

Részletesebben

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Függvények

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Függvények MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Függvények A szürkített hátterű feladatrészek nem tartoznak az érintett témakörhöz, azonban szolgálhatnak fontos információval az érintett feladatrészek

Részletesebben

x = 1 = ı (imaginárius egység), illetve x 12 = 1 ± 1 4 2

x = 1 = ı (imaginárius egység), illetve x 12 = 1 ± 1 4 2 Komplex számok A valós számok és a számegyenes pontjai között kölcsönösen egyértelmű megfeleltetés létesíthető. A számfogalom a számegyenes pontjainak körében nem bővíthető tovább. A számfogalom bővítését

Részletesebben

Háromszögek, négyszögek, sokszögek 9. évfolyam

Háromszögek, négyszögek, sokszögek 9. évfolyam Háromszögek, négyszögek, sokszögek 9. évfolyam I. Pontok, egyenesek, síkok és ezek kölcsönös helyzetet 1) a pont, az egyenes, a sík és az illeszkedés alapfogalmak 2) két egyenes metsző, ha van közös pontjuk

Részletesebben

1. Generátorrendszer. Házi feladat (fizikából tudjuk) Ha v és w nem párhuzamos síkvektorok, akkor generátorrendszert alkotnak a sík vektorainak

1. Generátorrendszer. Házi feladat (fizikából tudjuk) Ha v és w nem párhuzamos síkvektorok, akkor generátorrendszert alkotnak a sík vektorainak 1. Generátorrendszer Generátorrendszer. Tétel (Freud, 4.3.4. Tétel) Legyen V vektortér a T test fölött és v 1,v 2,...,v m V. Ekkor a λ 1 v 1 + λ 2 v 2 +... + λ m v m alakú vektorok, ahol λ 1,λ 2,...,λ

Részletesebben

VIK A2 Matematika - BOSCH, Hatvan, 3. Gyakorlati anyag. Mátrix rangja

VIK A2 Matematika - BOSCH, Hatvan, 3. Gyakorlati anyag. Mátrix rangja VIK A2 Matematika - BOSCH, Hatvan, 3. Gyakorlati anyag 2019. március 21. Mátrix rangja 1. Számítsuk ki az alábbi mátrixok rangját! (d) 1 1 2 2 4 5 1 1 1 1 1 1 1 1 2 1 2 1 1 0 1 1 2 1 0 1 1 1 1 2 3 1 3

Részletesebben

Geometria 1 normál szint

Geometria 1 normál szint Geometria 1 normál szint Naszódi Márton nmarci@math.elte.hu www.math.elte.hu/ nmarci ELTE TTK Geometriai Tsz. Budapest Geometria 1 p.1/4 Vizsga 1. Írásban, 90 perc. 2. Index nélkül nem lehet vizsgázni!

Részletesebben

Hajder Levente 2017/2018. II. félév

Hajder Levente 2017/2018. II. félév Hajder Levente hajder@inf.elte.hu Eötvös Loránd Tudományegyetem Informatikai Kar 2017/2018. II. félév Tartalom 1 2 3 Geometriai modellezés feladata A világunkat modellezni kell a térben. Valamilyen koordinátarendszer

Részletesebben