ektorid Matemaatikas tähistab vektor vektorruumi elementi. ektorruum ja vektor on defineeritud väga laialt, kuid praktikas võime vektorit ette kujutada kui kindla arvu liikmetega järjestatud arvuhulka. Oluline on siin see, et vektorite jaoks on defineeritud põhitehted - liitmine ning arvuga korrutamine. Analüütiline geomeetria võtab vektori tähenduse laiemast matemaatikast, kuid kasutab seda palju kitsamas tähenduses. ektor analüütilises geomeetrias ektor analüütilises geomeetrias on ruumikoordinaatide paar (XY (kahemõõtmelises ruumis ehk tasandil või kolmik (XYZ (kolmemõõtmelises ruumis. Perspektiivprojektsiooniks kasutatakse ka nelikut XYZW, millele vastab kokkuleppeline neljamõõtemeline ruum. Üksikut arvu vektoris nimetatakse vektori komponendiks (X, Y, Z või W, praktikas ka koordinaadiks. Edasises tekstis kasutame näidetes ainult kolmemõõtmelisi vektoreid, kui praktiliselt kõik vektorite omadused kehtivad ka kahe- ja rohkemamõõtmelistes ruumides. P 4 = (-1,-1,1 P 7 = (-1,1,1 P 6 = (1,1,1 P 5 = (1,-1,1 P 0 = (-1,-1,-1 P 2 = (1,1,-1 P 1 = (1,-1,-1 Blenderi ühikkuubi esitus vektoritena, mis määravad ära kuubi tipud (P 4 ei paista Praktikas kasutatakse vektori komponentide tähistamiseks alaindekseid. Kogu vektorit tähistatakse kas muutujanimega (millel võib olla peal nooleke või komponentide loendiga sulgudes. A=( A x, A y, A z A vektor A x,a y, A z vastava vektori X,Y,Z komponendid
ektori geomeetriline tähendus ektoritega tähistatakse kahte sisuliselt veidi erinevat geomeetriliste objektide klassi 1. Punkt - vektor (XY või XYZ tähistab punkti asukohta kokkuleppelise nullpunkti (koordinaatsüsteemi alguspunkti suhtes. ektori komponendid (X, Y või Z määravad vastavalt punkti kauguse nullpunktist piki kokkuleppelist X, Y või Z telge (projitseerituna vastavale teljele. astavate telgede kolmikut nimetatakse koordinaatsüsteemiks. Selles tähenduses vektorit tuleb ette kujutada punktina ruumis, kus on määratud ka nullpunkt. 3D mudelis tähistab selline vektor näiteks iga tipu (vertex asukohta. P P z P y P x Punkt P ruumis
2. ihkevektor ehk skaleeritud suund - vektor (XY või XYZ tähistab suunda tasandil või ruumis. ektori komponendid (X, Y või Z määravad nihke suuruse vastavalt piki kokkuleppelist X, Y või Z telge (projitseerituna vastavale teljele. Sellisteks suundadeks võib olla näiteks pinnanormaal (pinna suund, objekti kiirus või punktide nihe objekti teisendamisel. Selles tähenduses vektorit tuleb kujutada ette nihke- või suunanoolena ruumis, kusjuures nullpunkti asukoht ei ole oluline (noolel pole kindlat asukohta, ta kirjeldab suhtelist nihet. Suunavektor (pinnanormaal ruumis sunavektoril ei ole ühes asukohta ta kirjeldab ainult suunda z y x ihkevektor ruumis nihkevektoril ei ole ühest asukohta ta kirjeldab ainult objekti asukoha suhtelist muutust Matemaatiliselt on need kaks vektori kasutust identsed. Kui kujutleda vektorit nihkena (skaleeritud suund, siis on iga punkti asukoht määratud sellise nihkevektoriga, mis liigutab koordinaatsüsteemi nullpunkti vastava punkti asukohta. Oluline on mitte unustada, et vektor (nii punkti kui nihke tähenduses on alati seotud mingi koordinaatsüsteemiga. Koordinaatsüsteem määrab, millised on X, Y ja Z telgede suunad ruumis ja kus asub kokkuleppeline alguspunkt. ektor määrab vastavalt punkti asukoha või suuna või objekti nihke nende telgede suhtes.
Z Y O X Koordinaatsüsteemi kujutatakse tavaliselt nullpunktist lähtuvate telgede kolmikuna Arvutustes on vaja nende kahe tähenduse vahel vahet teha siis, kui me kasutame teisendusi - nihet, pööret ja skaleerimist (mida praktilises analüütilises geomeetrias kirjeldatakse teisendusmaatriksiga. Kui punkti nihutada, siis muutuvad kõik tema komponendid nihke võrra. P P' Punkti nihkel muutuvad talle vastava vektori (P vs P' koordinaadid nihkevektori võrra Kui suunavektorit nihutada, siis tema komponendid ei muutu (objektiga seotud suund, näiteks pinna suund jääb samaks, kui objekti nihutada
Objekti nihutamisel (tasandit nihutatakse nihkevektori võrra temaga seotud suunavektorid (pinnanormaal ei muutu Kui punkti või suunda pöörata, siis muutuvad nende komponendid ühesugusel viisil. ' ' ' Objekti pööramisel pöörduvad ka temaga seotud nihkevektorid (antud juhul pinnanormaalid Kui punkti skaleerida, skaleeruvad kõik tema komponendid.
P' P Punkti skaleerimisel muutvad tema koordinaadid skaala võrra Kui suunavektorit skaleerida, siis sõltub tulemus vastava suuna semantilisest tähendusest. äiteks kui suunavektor tähistab objekti nihet või kiirust, siis skaleerub ta samamoodi nagu punkt. Kui ta tähistab pinnanormaali suunda, siis teisendatakse teda teistsuguste reeglite järgi. ektori pikkus ektori A=(A x, A y, A z Pikkust tähistatakse sümboliga Ā ja selle väärtus on määratud valemiga Ā= A x 2 +A y 2 +A z 2 Punkti puhul vastab see punkti kaugusele nullpunktist, nihkevektori puhul vastava nihke pikkusele. Ühikvektoriks nimetatakse vektorit, mille pikkus on 1. Ühikvektoreid, mille suunad ühtivad koordinaatsüsteemi telgedega, nimetatakse vastava koordinaatsüsteemi baasvektoriteks. Baasvektorite koordinaadid vastavas koordinaatsüsteemis on (definitsiooni järgi alati: x =(1,0,0 y =(0,1,0 z=(0,0,1
Tehted vektoritega ektorite jaoks on defineeritud rida matemaatilisi tehteid. Kõik 3D objektide manipulatsioonid modelleerimis- ja esitusprogrammides määratakse nende põhitehetega. Tänu sellele, et vektorite tehted on üheselt määratud, on geomeetrilisi teisendusi lihtne formaalselt kirja panna, selgeks õppida ja programmikoodis teostada. Selle asemel, et iga üksikjuhu jaoks programmeerida vajalikud teisendused, kirjutatakse üks kord vektortehete teek ning kasutatakse edaspidi seda. 1. ektori korrutamine arvuga =( x, y, z a =(a x, a y, a z Teiste sõnadega - vektori korrutamisel arvuga tuleb vastava arvuga korrutada kõik selle vektori komponendid. ektori arvuga korrutamise geomeetriline tähendus Kui vektorit kujutleda geomeetrilise punktina, siis arvuga korrutamine skaleerib punkti asukohta nullpunkti suhtes. Kui vektorit kujutleda nihkevektorina, siis arvuga korrutamine skaleerib nihke pikkust. Korrutades vektori negatiivse arvuga, muutub selle suund (kui vektorit käsitleda suunavektorina vastupidiseks. 2,35-0,6 ektori korrutamisel arvuga muutub vektori pikkus, suund säilib (või muutub vastupidiseks
2. ektorite liitmine A=(A x, A y, A z B=(B x, B y, B z A+ B=(A x +B x, A y +B y, A z +B z Teiste sõnadega - vektorite liitmisel liidetakse ühekaupa nende komponendid. ektorite liitmise geomeetriline tähendus Kahe punkti liitmisel ei ole sisulist tähendust. Kui liita punktile nihkevektor, siis saame uue punkti, mille asukoha määrab vastavate vektorite summa. Kahe nihkevektori liitmisel saame uue nihke, mille suuna ja suuruse määrab vektorite summa. U +U ektorite liitmise geomeetriline tähendus üüd võime esimest korda näha tehete formaliseerimise kasulikkust. Teades reegleid vektorite korrutamiseks arvuga ja nende liitmiseks, saame defineerida ka reegli vektorite lahutamiseks. U = +( 1 U S.t. vektori lahutamiseks liidame lihtsalt vastandvektori.
ektori normaliseerimine ektori normaliseerimiseks nimetatakse tema teisendamist samasuunaliseks ühikvektoriks. = ormaliseerimist on 3D geomeetrias vaja väga laialdaselt näiteks peavad pinnanormaalid ja koordinaatsüsteemi baasvektorid olema ühikvektorid. Arvutused annavad paljudel juhtudel õige suuna, aga suvalise pikkusega vektori mis tuleb seejärel normaliseerida. 3. ektorite skalaarkorrutis Kahe vektori skalaarkorrutis on arv, mis võrdub nende komponentide korrutiste summaga. A=( A x, A y, A z B=(B x, B y, B z A B=(A x B x +A y B y +A z B z
ektorite skalaarkorrutise geomeetriline tähendus Kui üks vektoritest on ühikvektor, siis tema ja suvalise teise vektori skalaarkorrutis on vastava vektori projektsioon selle ühikvektori suunale. U α U ektori U skalaarkorrutise väärtus ühikvektoriga võrdub tema projektsiooniga suunalisele sirgele See omadus võimaldab teisendada punkte ja suunavektoreid eri koordinaatsüsteemide vahel. Pinna valgustatus on võrdeline pinnanormaali ja valguse suunavektori vahelise nurga koosinusega. Skalaarkorrutis võimaldab leida nurka kahe vektori vahel, kui on teada vektorite komponendid A B=Ā B cos(α Kahe omavahel risti asetseva vektori skalaarkorrutis on alati 0 (projektsioon vektoriga risti asetsevale suunale on 0.
Skalaarkorrutise rakendused 3D geomeetrias 1. Skalaarkorrutise abil saab leida nurga kahe numbriliselt antud vektori vahel α=acos( A B Ā B 2. Teisendada numbriliselt antud vektori ühest koordinaatsüsteemist teise A'=( x A, y A, z A Siin x, y, z on uue koordinaatsüsteemi baasvektorid vana koordinaatsüsteemi suhtes
4. ektorite vektorkorrutis ektorkorrutis (cross product on vektor, mille komponendid on määratud tegurite komponentidega A=( A x, A y, A z B=(B x, B y, B z A B=( A y B z B y A z, A x B z B x A z, A x B y B x A y ektorkorrutis (nagu nimigi ütleb annab tulemuseks vektori ektorkorrutis on määratud ainult kolmemõõtmelises ruumis ektorkorrutis on antikommutatiivne A B= ( B A Kahe samasihilise vektori vektorkorrutis on 0 ektorkorrutise skalaarkorrutis emma-kumma teguriga on 0 (vektorkorrutis on risti mõlema teguriga
ektorkorrutise geomeetriline tähendus ektorkorrutis on risti mõlema vektoriga ja tema pikkus on võrdeline vektoritevahelise nurga siinusega. Kahe samasuunalise vektori vektorkorrutis on alati 0. Ortonormaalses koordinaatsüsteemis (s.t. sellises, mille baasvektoriteks on üksteisega risti olevad ühikvektorid, on iga baasvektor kahe ülejäänud baasvektori vektorkorrutis. Z=XxY Y=ZxX O X = YxZ See omadus võimaldab hõlpsalt konstrueerida koordinaatsüsteemi, kui antud on ainult osad vektorid näiteks, kui kaamera peab järgima objekti, on meile antud ainult objekti asend ja suund üles (ja need ei pea sugugi omavahel risti olema nende kahe suunavektori abil saab konstrueerida objektile suunatud kaamera koordinaatsüsteemi. y= z x x=norm( up z up z= d d d 1. OpenGL rakendustes on normiks, et kaamera vaatab piki z telge 2. Kõigepealt leiame suunavektori d (kaamera asukohast sihtpunkti 3. Suunavektori ja üles-vektori vektorkorrutise abil leiame x vektori 4. iimasena leiame y vektori