Kolmiulotteisten parametroitujen käyrien suunnittelutyökalun toteuttaminen
Vähä-Salo, Tom (2013)
Vähä-Salo, Tom
2013
Tietotekniikan koulutusohjelma
Tieto- ja sähkötekniikan tiedekunta - Faculty of Computing and Electrical Engineering
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2013-04-03
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201304061109
https://urn.fi/URN:NBN:fi:tty-201304061109
Tiivistelmä
Parametroidut käyrät ovat nykyään oleellinen osa graafista suunnittelua ja grafiikan tuottamista, vaikka yhteyttä ei aina ole helppo havaita. Tällaiset käyrät mahdollistavat pehmeästi kaartuvien muotojen tuottamisen käyrän hallittavuudesta tinkimättä. Parametroitujen käyrien avulla on myös mahdollista muodostaa pintoja, mikä mahdollistaa vapaasti muokattavien kolmiulotteisten kappaleiden tuottamisen. Käyrien historia juontaa juurensa 1950- ja 1960-lukujen taitteeseen, jolloin Bézier-käyrä kehitettiin. Bézier-käyrä on eräs tunnetuimmista parametroiduista käyristä.
Käyrien hyödyntäminen ei ole yksinkertaista. Ilman asianmukaista työkalua on vaikea hahmottaa, millaiseksi lopullinen käyrä muodostuu. Lisäksi käyrän laskeminen käsin on hidasta, koska käyrän laskeminen vaatii monivaiheisia matemaattisia operaatioita.
Tässä diplomityössä tarkastellaan kolmiulotteisia parametroituja käyriä, ja niiden suunnitteluun tarkoitetun sovelluksen toteuttamista. Sovellus helpottaa käyrien suunnittelua ja mahdollistaa käyrien tallentamisen myöhempää käyttöä varten. Sovellukselle asetettiin kolme päätavoitetta; sovellus mahdollistaa uusien käyrien suunnittelun, sovelluksella on mahdollista muokata olemassa olevia käyriä ja käyrä on mahdollista tallentaa jatkokäsittelyn mahdollistavaan muotoon.
Sovellus toteutettiin käyttäen Qt-sovelluskehystä, joka mahdollistaa alustariippumattoman sovelluskehityksen C++-ohjelmointikielellä. 3D-grafiikan tuottamisessa hyödynnettiin OpenGL:ää. OpenGL on avoin grafiikkarajapinta 2D- ja 3D-grafiikan piirtämiseen. Sovelluksen toteuttamiseen liittyvistä ratkaisuista merkittävin on liitännäisien käyttäminen. Liitännäiset mahdollistavat sovelluksen joustavan laajentamisen. Kaikki sovelluksessa käytetyt käyrätyypit toteutetaan liitännäisinä, jolloin uuden käyrätyypin lisääminen ei vaadi sovelluskoodin muokkaamista.
Toteutettu sovellus täyttää kaikki sille asetetut tavoitteet. Kaikkia ratkaisuja ei kuitenkaan voitu toteuttaa täydellisesti tämän työn rajoissa. Erityisesti sovelluksen käytettävyyden osalta jatkokehitys on suotavaa. Käyrän laskeminen tietokoneen suorittimella ei aiheuta huomattavaa viivettä normaalitilanteessa, mutta laskenta saattaisi nopeutua tietokoneen grafiikkaohjainta hyödyntämällä.
Käyrien hyödyntäminen ei ole yksinkertaista. Ilman asianmukaista työkalua on vaikea hahmottaa, millaiseksi lopullinen käyrä muodostuu. Lisäksi käyrän laskeminen käsin on hidasta, koska käyrän laskeminen vaatii monivaiheisia matemaattisia operaatioita.
Tässä diplomityössä tarkastellaan kolmiulotteisia parametroituja käyriä, ja niiden suunnitteluun tarkoitetun sovelluksen toteuttamista. Sovellus helpottaa käyrien suunnittelua ja mahdollistaa käyrien tallentamisen myöhempää käyttöä varten. Sovellukselle asetettiin kolme päätavoitetta; sovellus mahdollistaa uusien käyrien suunnittelun, sovelluksella on mahdollista muokata olemassa olevia käyriä ja käyrä on mahdollista tallentaa jatkokäsittelyn mahdollistavaan muotoon.
Sovellus toteutettiin käyttäen Qt-sovelluskehystä, joka mahdollistaa alustariippumattoman sovelluskehityksen C++-ohjelmointikielellä. 3D-grafiikan tuottamisessa hyödynnettiin OpenGL:ää. OpenGL on avoin grafiikkarajapinta 2D- ja 3D-grafiikan piirtämiseen. Sovelluksen toteuttamiseen liittyvistä ratkaisuista merkittävin on liitännäisien käyttäminen. Liitännäiset mahdollistavat sovelluksen joustavan laajentamisen. Kaikki sovelluksessa käytetyt käyrätyypit toteutetaan liitännäisinä, jolloin uuden käyrätyypin lisääminen ei vaadi sovelluskoodin muokkaamista.
Toteutettu sovellus täyttää kaikki sille asetetut tavoitteet. Kaikkia ratkaisuja ei kuitenkaan voitu toteuttaa täydellisesti tämän työn rajoissa. Erityisesti sovelluksen käytettävyyden osalta jatkokehitys on suotavaa. Käyrän laskeminen tietokoneen suorittimella ei aiheuta huomattavaa viivettä normaalitilanteessa, mutta laskenta saattaisi nopeutua tietokoneen grafiikkaohjainta hyödyntämällä.