430 likes | 885 Views
Vektoriniai Algoritmai. Vizualizavimo Sistemos. Paruošė: IG-08 grupės studentas Andrius Mikalajūnas. Temos. Vektoriniai algoritmai: Rodyklės (Hedgehogs) , Orientuoti glifai (Glyphs) , Deformuoti paviršiai (Warping) , Poslinkių planai (Displacement plots) ,
E N D
Vektoriniai Algoritmai Vizualizavimo Sistemos Paruošė: IG-08 grupės studentas Andrius Mikalajūnas
Temos Vektoriniai algoritmai: • Rodyklės (Hedgehogs) , • Orientuoti glifai (Glyphs) , • Deformuoti paviršiai (Warping), • Poslinkių planai (Displacement plots), • Srovės linijos (Streamlines) : • Srovės linijos, dalelių trajektorijos, laikotarpio linijos (Streaklines), • Srovės vamzdeliai (Streamtubes) , • Srovės paviršiai(Streamsurfaces)ir srovės juostos(Streamribbons), Tenzoriniai algoritmai: • Tenzorinės ašys ir elipsoidai, • Hyper srovės linijos.
Vektoriniai Algoritmai Vektorių vizualizavimas reikalauja daugiau vizualinių atributų: • Vektoriaus (x, y, z) kryptis – orientacija, • Vektoriaus (x, y, z) dydis – ilgis. Vektorių vizualizavimas reikalauja daugiau ekrano erdvės: • Vektoriui atvaizduoti reikia daugiau nei vieno pikselio, • Sudėtinga vizualizuoti tankius vektorinius laukus.
Vektoriniai Algoritmai: Rodyklės Kiekvienam vektoriui brėžiama atskira rodyklė: • Rodyklė prasideda mazge, kuriame gautas vektorinis atributas, • Vektoriaus (x, y, z) kryptis – rodyklės orientacija, • Vektoriaus (x, y, z) dydis – rodyklės ilgis arba jos “galvos” dydis. Rodyklės spalva galima vaizduoti: • Vektoriaus dydį, • Kitą skaliarinį dydį (pvz. slėgį). Vietoj rodyklės gali būti naudojama orientuota linija.
Vektoriniai Algoritmai: Rodyklės • Orientacija • Kryptis • Dydis
Vektoriniai Algoritmai: Rodyklės Sudėtinga vizualizuoti vektorinio lauko detales: • Tankus mazgų tinklas ir daug duomenų, • 3D persidengimai.
Vektoriniai Algoritmai: Rodyklės Naudojamos specialios technikos: • Filtrai, • Papildomi paviršiai, • Kruopštus detalių parinkimas.
Vektoriniai Algoritmai: Rodyklės Sudėtinga vizualizuoti vektorinius laukus 3D erdvėje: • Persidengimas (osciliacijos su dideliu reikšmių skirtumu), • Orientacijos problemos dėl projektavimo į 2D atvaizdį, • Rodyklių dydžio kitime (scaling) atsiranda netiesiniai efektai. Neatspindi vektorinio lauko visumos: • Parodo lauko charakteristikas konkrečiame taške, • Sunkiai vizualizuoja globalias lauko charakteristikas.
Vektoriniai Algoritmai: Glifai Vietoj rodyklių galima naudoti orientuotus glifus: • Geriau atrodo ar labiau atitinka duomenų prasmę, • Gali vaizduoti daugiau informacijos. Glifas – objektas, kuris veikiamas duomenų keičia savo vaizdą: • Padėtį, orientaciją, • Dydį, formą, • Spalvą ar kitus vaizdinius atributus. Bendru atveju glifas yra “icon”: • Dažniausiai naudojami kokie nors geometriniai objektai, • Rodyklės yra paprasčiausias glifų atvejis.
Vektoriniai Algoritmai: Glifai Elementarūs: • Paprasčiausi glifai, vizualizuojantys elementarią informaciją, • Pvz. rodyklės. Lokalūs: • Vizualizuoja elementarią informaciją ir lokalų duomenų pasiskirstymą, • Pvz. normalinis vektorius, nuspalvintas lokaliu kreivumu. Globalūs: • Vizualizuoja viso duomenų rinkinio (dataset) struktūrą, • Pvz. izopaviršiai.
Vektoriniai Algoritmai: Rodyklės Elementarūs glifai: • Keičiasi tik viena savybė, Dažniausiai naudojami įvairių dimensijų geometriniai objektai: • Linijos, trikampiai, kūgiai,
Vektoriniai Algoritmai: Glifai Lokalūs glifai: • Keičiasi kelios glifo savybės. Dažniausiai naudojami nuspalvinti geometriniai objektai: • Nuspalvinti rodyklių laukai (ilgis, orientacija, spalva), • Papildomai gali kisti rodyklės “galvos” dydis ar glifo forma.
Vektoriniai Algoritmai: Glifai Globalūs glifai: • Vienas glifas vizualizuoja visą duomenų rinkinį, todėl labai stipriai kinta. Dažniausiai naudojami sudėtingi netradiciniai glifai: • Izopaviršiai, • Netradicinės duomenų reprezentacijos.
Vektoriniai: Deformuoti paviršiai Dažnai vektoriniai dydžiai (poslinkiai, greičiai) laikuibėgantkeičia objekto padėtį erdvėje. Vektorinis laukas deformuoja pradinę objekto geometriją: • xi+1=xi+di=xi+vi*Δt, Vibruojančio strypo pavyzdys: • Patogu vaizduoti pradinę strypo padėtį.
Vektoriniai: Deformuoti paviršiai Deformavimui galima panaudoti bet kokį paviršių: • Patogiausia 2D plokštumą arba 1D tiesę. Pavyzdyje vizualizuotas tėkmės momentas. Dažniausiai vektorinio lauko mastelis keičiamas; • Išvengiama per mažų (vartotojui nepastebimų) arba per didelių deformacijų.
Vektoriniai: Poslinkių planai Atskiras deformuojamų paviršių atvejis – poslinkių planai. Poslinkių planai vaizduoja objekto pokyčius kryptimi, statmena jo paviršiui: • Poslinkiai gaunami skaičiuojami skaliarinę sandauga tarp atributų vektoriaus ir paviršiaus normalės, • Papildomai deformuotas paviršius gali būti nuspalvintas. Dažniausiai taikomi vibracijoms (vibro-engineering) analizuoti.
Vektoriniai: Poslinkių planai • Vektoriniai atributai keičia objekto geometrija. • Topologija ir atributai nekeičiami. • Poslinkių planams reikalingas paviršius ir jo normalės. • Didelių poslinkių mastelį reikia keisti.
Vektoriniai Algoritmai: Srovės linijos Srovėslinijos– kreivės, kuriųliestinės sutampa su greičio vektoriais kiekviename taške: • Per kiekvieną erdvės tašką galima nubrėžti srovės liniją, • Tai integralinės kreivės s=s(x,t), brėžiamosfiksuotulaikomomentu. Dalelių trajektorijos – dalelių padėtys erdvėje laikui bėgant: • Kiekvienas erdvės taškas yra fiksuotos dalelės trajektorijos taškas. • Laikui bėgant greitis gali kisti, o tai atsispindi tarpuose tarp dalelės padėčių Laikotarpio linijos –dalelių, kirtusių nurodytą tašką, padėtys fiksuotu laiko momentu: • Duotas vienas fiksuotas erdvės taškas. • Greitis kinta laike, nagrinėjamos daugelio dalelių padėtys. Nusistovėjusio tekėjimo atveju visos šios kreivės sutampa. Programinėje įrangoje skaičiuojamos panašiais algoritmais: • Skaitinio integravimo pagalba.
Vektoriniai Algoritmai: Srovės linijos Srovėslinijos: • Fiksuotaslaikomomentas. Dalelių trajektorijos: • Fiksuotos dalelės. Laikotarpio linijos: • Fiksuotas erdvės taškas.
Vektoriniai Algoritmai: Srovės linijos • Srovėslinijosnevaizduoja greičio dydžio: • Galima spręsti pagal tarpą tarp gretimų linijų, • Nuspalvinti linijas pagal greičio modulio skaliarą, • Galima linijas sudaryti iš skirtingo ilgio brūkšnelių, • Galima spalvinti pagal kitą skaliarą (pvz. tankį).
Vektoriniai Algoritmai: Srovės linijos Dvigubo lango pavyzdys: srovės linijos ir dalelės trajektorija • Skirtingos temperatūros stiklai, • Oro judėjimas tarp jų.
Vektoriniai Algoritmai: Srovės linijos • Sferos aptekėjimas: nusistovėjusio srovės linijos
Vektoriniai Algoritmai: Srovės linijos Sunku susigaudyti tarp daugelio persidengiančių linijų: • Keičiama kameros pozicija arba kerpamosios plokštumos. Fizikinio suvokimo problemos 3D aštrėja: • Gylis (aukštis) atspindimas ryškumu arba spalva. • Naudojamos virtualios realybės sistemos, pasižyminčios aukštu interaktyvumo lygiu (NASA Ames Virtual Wind Tunel).
Vektoriniai Algoritmai: Trajektorijos Dalelių trajektorijas apibrėžia lygtis: • dX/dt=v(t). Linijų geometrija gaunama skaitinio integravimo pagalba: • Oilerio metodas (antros eilės tikslumo ne visada užtenka), • Rungės-Kuto metodas (tikslesnis, bet sudėtingesnis ir brangesnis). Laiko žingsnio parinkimas nėra trivialus (tikslumas ar greitis?).
Vektoriniai Algoritmai: Trajektorijos • Kylančio štormo dalelių trajektorijos
Vektoriniai Algoritmai: Trajektorijos Dalelių trajektorijos ofise: • Ant stalo dega cigaretė, • Keli pradinio dalelių “debesies” variantai.
Vektoriniai Algoritmai: Trajektorijos Dalelių trajektorijos ofise: • Ant stalo dega cigaretė, • Keli pradinio dalelių “debesies” variantai.
Vektoriniai Algoritmai: StreamRibbon Daugumapateiktų algoritmų vizualizuoja tik elementarią vektorinio lauko informaciją. Lokali ir globali vektorinio lauko informacija gali būti labai svarbi! • Lokali (tėkmės sūkuriai ar greičių lauko išvestinės), • Globali (lauko struktūra, pzv. sūkuriniai vamzdžiai). Srovės juosta(StreamRibbon)– siauras paviršius tarp dviejų srovės linijų, sujungtų daugiakampių tinklu: • Sukimasis iliustruoja srovės linijos sūkuringumą, • Plotis vaizduoja tėkmės divergenciją. Vizualizacijos srovės juostomis tikslumas krenta, srovės linijoms tolstant viena nuo kitos.
Vektoriniai Algoritmai: StreamRibbon • Kylančio štormo srovės linijos ir juostos;
Algoritmai: Srovės Paviršiai Srovės paviršius(StreamSurface)– be galo daug srovės linijų, kertančių bazinę kreivę: • Skystis negali pratekėti pro srovės paviršių, todėl srovės paviršius gali atspindėti globalią tėkmės struktūrą. Vartotojas apibrėžia bazinę kreivę, taip nustatydamas srovės linijų pradžią. Srovės paviršiai geriau vizualizuoja tėkmę negu greičių vektoriai ar srovės linijos, nes jų nereikia vizualiai interpoliuoti.
Vektoriniai Algoritmai: StreamTube Srovės vamzdelis(Stream Tube)– srovės paviršiaus poaibis, atitinkantis uždarą bazinę kreivę: • kurios plotis yra mažas lyginant su ilgiu: • iliustruoja skysčio masės judėjimą, nes dalelės per paviršių neprateka.
Vektoriniai Algoritmai: StreamTube Vietoj srovės linijų galima generuoti srovės vamzdelius: • Daroma su filtru vtkTubeFilter, • Vamzdelio storis gali priklausyti nuo skaliaro ar vektoriaus.
Vektoriniai Algoritmai: StreamTube • Cilindro aptekėjimas: iš srovėslinijų sugeneruoti srovės vamzdeliai
Tenzoriniai Algoritmai • Dažnai sutinkamus 2 eilės tenzorius galima išreikšti 3x3 matricomis.
Tenzoriniai Algoritmai Tenzorių pavyzdžiai: • Įtempimai ir deformacijos, Norint vizualizuoti, 3x3 matricą reikia išreikšti: • 3 tikrinėmis reikšmėmis ir 3 tikriniais vektoriais, • Tam reikia išspręsti lygtį: Ax= λxirdet|A-λI|=0.
Tenzoriniai Algoritmai Tenzorius galima vizualizuoti ašimis: • 3D taške brėžiamos trys ašys, • Jos orientuojamos pagal tikrinius vektorius, • Jų dydį nustato tikrinių reikšmių dydžiai (galima ir nuspalvinti).
Tenzorinia Algoritmai Tenzorinis elipsoidas– populiariausias būdas vaizduoti tenzorius: • Elipsė (glifas) pozicionuojama taške, • Elipsoido ašys orientuojamos pagal tikrinius vektorius, • Elipsoido dydis transformuojamas pagal tikrines reikšmes.
Tenzoriniai Algoritmai Hypersrovėslinijos – geometrinis primityvas slenkamas srovės linija: • Vienas tikrinis vektorius naudojamas srovės linijos generavimui, • Kiti du kontroliuoja linija slenkamo primityvo ašių orientaciją, • Tikrinės reikšmės kontroliuoja primityvo dydį, • Dažniausiai naudojamos elipsės ir kryžiai (iliustruoja sukimasi).