OpenGL 2. Sisältö. Tietokonegrafiikka / perusteet T /301 4 ov / 2 ov

Koko: px
Aloita esitys sivulta:

Download "OpenGL 2. Sisältö. Tietokonegrafiikka / perusteet T /301 4 ov / 2 ov"

Transkriptio

1 Tietokonegrafiikka / perusteet T /301 4 ov / 2 ov OpenGL 2 Iikka Olli OpenGL / 1 GLUT Display listat Teksturointi Sumu Blendaus Antialiasointi Picking Optimointi Sisältö OpenGL / 2 1

2 GLUT = OpenGL Utility Toolkit Author: Mark J. Kilgard GLUT Järjestelmä riippumaton OpenGL API (C kielellä) Tapahtuma käsitty takaisin kutsuina Useita ikkunoita Idle loop Syötelaitteet Popup menut 3D primitiivejä, torus, pallo, kartio, teepannu... Overlays Kirjasimet (fontit) Sekalaisia apufunktiota OpenGL / 3 GLUTin käyttö Alustus: glutinit(&argc, argv); glutinitdisplaymode(glut_double GLUT_RGB GLUT_DEPTH); Takaisin kutsujen rekisteröinti: glutdisplayfunc(display); glutmousefunc(mouse); glutkeyboardfunc(keypress); glutidlefunc(rotate_me); Tapahtumasilmukka: glutmainloop(); 3D primitiivit: glutsolidsphere, Cube, Cone, Torus, Teapot, Dodeca/Octa/Tetra/Icosaherdon glutwiresphere, Cube... Sekalaista: glutswapbuffers, glutestablishoverlay, glutcreatemenu, glutfullscreen... OpenGL / 4 2

3 GLUT takaisin kutsut void glutdisplayfunc(void (*func)(void)); void glutreshapefunc(void (*func)(int w, int h); void glutkeyboardfunc(void (*func)(unsigned char key, int x, int y)); void glutspecialfunc(void (*func)(int key, int x, int y)); GLUT_KEY_F1..F12, GLUT_KEY_LEFT, GLUT_KEY_UP, GLUT_KEY_DOWN, GLUT_KEY_RIGHT, GLUT_KEY_PAGE_UP, GLUT_KEY_PAGE_DOWN, GLUT_KEY_HOME, GLUT_KEY_INSERT void glutmousefunc(void (*func)(int button, int state, int x, int y)); GLUT_LEFT_BUTTON, GLUT_MIDDLE_BUTTON, GLUT_RIGHT_BUTTON GLUT_UP, GLUT_DOWN void glutidlefunc(void (*func)(void)); void gluttimerfunc(unsigned int msecs, void (*func)(int value), value); glutspaceballmotionfunc(), glutspaceballrotatefunc(), glutspaceballbuttonfunc(), glutbuttonboxfunc(), glutdialsfunc(), gluttabletmotionfunc(), gluttabletbuttonfunc()... Takaisin kutsu disabloidaan NULL argumentilla OpenGL / 5 GLUT kirjasimet Stroke kirjasimet geometria viivoina skaalautuvia void glutstrokecharacter(void *font, int character); GLUT_STROKE_ROMAN, GLUT_STROKE_MONO_ROMAN void *font = GLUT_STROKE_ROMAN; char message[] = GLUT means OpenGL. ;... glenable(gl_line_smooth); glenable(gl_blend); glblendfunc(gl_src_alpha, GL_ONE_MINUS_SRC_ALPHA); gllinewidth(3.0);... glrotatef(4.0, 0.0,0.0,1.0); for(i=0 ; i<len ; i++) glutstrokecharacter(font, message[i]); OpenGL / 6 3

4 GLUT kirjasimet Bittikartta kirjasimet Rasterimatriisi, yksi bittisiä kuvia Nopeita Vakio kokoisia (ei skaalautuvia) void glutbitmapcharacter(void *font, int character); GLUT_BITMAP_8_BY_13, GLUT_BITMAP_9_BY_15 GLUT_BITMAP_TIMES_ROMAN_10, 24 GLUT_BITMAP_HELVETICA_10, 12, 18 OpenGL / 7 Display listat Välimuisti OpenGL kutsuille Hyvä paikka objektien säilyttämiselle (geometria ja attribuutit) Käytä harkiten: Ei yksittäisiä kolmioita! Yleisesti tehokkaampia kuin yksittäiset kutsut Rakenna monimutkaiset objektit (esim robotti) käyttäen hierarkisia display listoja Ei sovellu erittäin suuriin malleihin käytä suuriin malleihin mieluummin fiksuja algoritmeja esim BSP Luotua listaa ei voi muuttaa käytännössä lista voidaan muuttaa poistamalla se ja luomalla uudelleen uusilla parametreilla Display lista luodaan laittamalla OpenGL komentoja glnewlist ja glendlist komentojen väliin Jokaisella display listalla on oma id Uuden id:n saat glgenlists() funktiolla Display lista voi sisältää kutsuja toisiin display listoihin OpenGL / 8 4

5 B5_world = glgenlists(1); Display listat glnewlist(b5_world, GL_COMPILE); glcalllist(station); glcalllist(planet); glcalllist(stars); glendlist(); glcalllist(b5_world); Voit kysyä OpenGL:ltä onko jokin display lista olemassa glislist() funktiolla Display listan voi tuhota gldeletelists() funktiolla void check_and_destroy(gluint list) { if(glislist(list)) gldeletelists(list,1); } OpenGL / 9 Display listat Display listoja rakennettaessa voidaan käyttää mitä tahansa laskuja ja algoritmeja Vain OpenGL komennot tallennetaan display listaan void buildcircle(int circle_list) { GLint i; GLfloat x,y; } glnewlist(circle_list, GL_COMPILE); glbegin(gl_line_loop); for(i=0 ; i<8 ; i++) { x=cos(i*2*m_pi/8.0); y=sin(i*2*m_pi/8.0); } glend(); glendlist(); OpenGL / 10 5

6 Display listat Display listat muuttavat OpenGL:n tilaa (matriiseja ja attribuutteja) aivan kuten mitkä tahansa OpenGL komennot Matriisit ja attribuutit voidaan tallettaa pinoon glnewlist(list, GL_COMPILE); glpushmatrix(); glpushattrib(gl_current_bit); gltranslatef(1.5, 0.0, 0.0); glcolor3f(1.0, 0.0, 0.0); glbegin(gl_triangles); glvertex2f(0.0, 0.0); glvertex2f(1.0, 0.0); glvertex2f(0.0, 1.0); glend(); glpopattrib(); glpopmatrix(); glendlist(); OpenGL sisältää yli 20 eri attribuuttiryhmää. Nämä käsittelevät mm. tämän hetkistä tilaa, puskureita, valoja, sumua jne. GL_CURRENT_BIT = color, normal, texture coords, edge_flag, rasterization info OpenGL / 11 Tekstuurit Tapa liittää kuva pinnalle Käytännöllinen yksityiskohtien toteuttamiseksi Samaa kuvaa voidaan kopioida useaan kertaa (esimerkiksi tiiliseinä) Mapping: yhdistetään tekstuurikoordinaatit (s,t) solmuun OpenGL / 12 6

7 Tekstuurit Tekstuurien koko aina 2 potensseja 16x16, 32x32, 64x64... On kaksi tapaa tehdä tekstuureja 1) Luetaan tekstuuri tiedostosta Kurssi tarjoaa kirjaston rgb kuvien lukemiseen Käytä xv tai gimpiä konvertoimaan jpg tms rgb(a) muotoon GLubyte *LoadRGBImage(const char *imagefile, GLint *w, GLint *h, GLenum *format); GLubyte *Image = NULL; Image = LoadRGBImage( foo.rgb, &ImgWidth, &ImgHeight, &ImgFormat); 2) Käytetään kivaa algoritmia tekemään kuva suoraan muistiin Hyvä yksikertaisiin kuviin kuten shakkilauta OpenGL / 13 Tekstuurit Tekstuuri ja sen parametrit voidaan määrittää nimetyksi tekstuuri objektiksi a) Luo tekstuureille nimet b) Yhdista tekstuuri data (kuva ja parametrit) nimeen c) Priorisoi jos tarpeen d) Käytä tekstuurikoordinaatteja solmuille e) Poista GLuint texnames[2]; GLubyte *myimage=null;... glgentextures(2, texnames); glbindtexture(gl_texture_2d, texnames[0]); gltexparameteri(gl_texture_2d, GL_TEXTURE_WRAP_S, GL_CLAMP); gltexparameteri(gl_texture_2d, GL_TEXTURE_WRAP_T, GL_CLAMP); glteximage2d(gl_texture_2d, 0, GL_RGBA, 256, 256, 0, GL_RGBA, GL_UNSIGNED_BYTE, myimage);... glbindtexture(gl_texture_2d, texnames[0]);... gldeletetextures(2, texnames); OpenGL / 14 7

8 Tekstuurien parametrit Muistiin tallennus muoto: glpixelstorei(gl_unpack_alignment,1); Tekstuurien kääriytyminen (wrapping): gltexparameterf(gl_texture_2d, GL_TEXTURE_WRAP_S, GL_WRAP); gltexparameterf(gl_texture_2d, GL_TEXTURE_WRAP_T, GL_CLAMP); Teksturointi metodi: gltexenvf(gl_texture_env, GL_TEXTURE_ENV_MODE, GL_DECAL); GL_DECAL, GL_MODULATE, GL_BLEND Muista laittaa teksturointi päälle! glenable(gl_texture_2d); OpenGL / 15 Tekstuurin sormenjälki: a) kohdetyyppi b) mipmap taso c) sisäinen muoto d) leveys ja korkeus e) kehys f) kuvan muoto g) kuvan data Tekstuurin määrittely glteximage2d(gl_texture_2d, 0, GL_RGB, ImgWidth, ImgHeight, 0, GL_RGB, GL_UNSIGNED_BYTE, ImgData); OpenGL / 16 8

9 Aseta tekstuuri koordinaatit jokaiselle solmulle! Tekstuuri koordinaatit void display(void) { glclear(gl_color_buffer_bit GL_DEPTH_BUFFER_BIT); glbegin(gl_quads); gltexcoord2f(0.0, 0.0); glvertex3f(-2.0, -1.0, 0.0); gltexcoord2f(0.0, 1.0); glvertex3f(-2.0, 1.0, 0.0); gltexcoord2f(1.0, 1.0); glvertex3f(0.0, 1.0, 0.0); gltexcoord2f(1.0, 0.0); glvertex3f(0.0, -1.0, 0.0); } gltexcoord2f(0.0, 0.0); glvertex3f(1.0, -1.0, 0.0); gltexcoord2f(0.0, 1.0); glvertex3f(1.0, 1.0, 0.0); gltexcoord2f(1.0, 1.0); glvertex3f(2.4, 1.0, -1.4); gltexcoord2f(1.0, 0.0); glvertex3f(2.4, -1.0, -1.4); glend(); glflush(); OpenGL / 17 Teksturointi funktiot Tekstuuri voidaan laittaa suoraan pinnalle tai sitten se voi muokata puskurissa olevaa väriä gltexenvi(gl_texture_envm GL_TEXTURE_ENV_MODE, GL_DECAL); gltexenvi(gl_texture_envm GL_TEXTURE_ENV_MODE, GL_MODULATE); OpenGL / 18 9

10 Mipmap Tarkkuustason säätö Optimointia: käytetään pienempää tekstuuria pienemmälle polygonille Täysi tarkkuus ainoastaan läheltä katsottaessa Esisuodatus gltexparameteri(gl_texture_2d, GL_TEXTURE_MIN_FILTER, GL_NEAREST); GL_NEAREST_MIPMAP_NEAREST, GL_LINEAR_MIPMAP_NEAREST, GL_LINEAR_MIPMAP_LINEAR OpenGL / 19 Environment mapping Tekstuurin osoitus pinnan normaalin ja katsomissuunnan funktiona gltexgeni(gl_s, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP); gltexgeni(gl_t, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP); glenable(gl_texture_gen_s); glenable(gl_texture_gen_t); OpenGL / 20 10

11 Sekoittaminen (Blending) Värin sekoittamista käyttäen alpha arvoja Läpinäkyvyys Muista aina disabloida syvyystestaus ja enabloida blendaus gldisable(gl_depth_test); glenable(gl_blend); Sekoitus funktioon voidaan vaikuttaa pixel = f(source, target) f = glblendfunc(sfactor, dfactor) Tyypillinen käyttö piirrä ensimmäinen objekti arvoilla sfactor=gl_one dfactor=gl_zero piirrä toinen objekti puoliksi läpinäkyvänä glcolor(0,1,0,0.5); sfactor=gl_src_alpha dfactor=gl_one_minus_src_alpha OpenGL / 21 Poistaa kulmikkuuden joka johtuu heikosta näytteenottotaajuudesta Alpha voidaan käyttää apuna Käytännössä sekoitetaan naapuripikseleitä Suhteellisen helppoa viivoille ja pisteille glenable(gl_line_smooth); glenable(gl_blend); glblendfunc(gl_src_alpha, GL_ONE_MINUS_SRC_ALPHA); glhint(gl_line_smooth_hint, GL_DONT_CARE); gllinewidth(1.5); Polygonit toimivat hieman toisin Antialiasointi OpenGL / 22 11

12 Antialiasointi Eräs tapa polygonien antialiasointiin: a) Aseta pieni alpha arvo polygonin reunapisteille glenable(gl_polygon_smooth); b) Disabloin syvyystesti gldisable(gl_depth_test); c) Valitse sekoitusfunktio reunapisteille glblendfunc(gl_src_alpha_saturate, GL_ONE); d) Piirrä syvyys järjestyksessä (painter s algorithm) Nykyisin antialiasointia myös raudalla Accumulation bufferia voidaan käyttää myös antialiasoinnin toteutukseen OpenGL / 23 Kaukana olevat objektit häviävät Toteutettu käyttäen syvyysarvoja Sumun parametrejä voidaan säätää Sumu glfog{if}{v}(glenum pname, TYPE param); pname: GL_FOG_MODE GL_FOG_COLOR GL_FOG_DENSITY GL_FOG_START GL_FOG_END param: GL_EXP, GL_EXP2, GL_LINEAR RGBA arvot sumun tiheys (EXP) sumun aloitus etäisyys (LINEAR) sumun lopetus etäisyys (LINEAR) glenable(gl_fog); OpenGL / 24 12

13 Picking Valitseminen on usein riippuvainen tapahtumista kuten hiiren nappulan painaminen OpenGL tarjoaa karkean tavan toteuttaa valitseminen a) Tee taulukko osumille tai valinta puskuri b) Alusta nimi pino c) Rajoita piirtoalue lähelle osoitinta (glupickmatrix() + projektio matriisi) d) Piirrä piirto moodina GL_SELECT. Piirron aikana liitä jokaiseen objektiin nimi e) Palaa GL_RENDER piirto moodiin f) Hae lähimmän objektin nimi osuma taulukosta. Taulukossa on osuman 1) indeksi 2) minz 3) maxz 4) objektin nimi OpenGL / 25 Picking esimerkki int selectpiece(int mousex, int mousey) { long hits; GLuint selectbuf[1024], closest, dist; } glselectbuffer(1024, selectbuf); glrendermode(gl_select); glinitnames(); glpushname(-1); glmatrixmode(gl_projection); glloadidentity(); glupickmatrix(mousex, H-mousey, 4, 4, viewport); gluperspective(45, 1,0.1, 100.0); drawall(); hits = glrendermode(gl_render); if(hits<=0) return 0; closest = 0; dist = ; while(hits) { if(selectbuf[(hits-1)*4+1]<dist) { dist= selectbuf[(hits-1)*4+1]; closest = selectbuf[(hits-1)*4+3]; } hits--; } return closest; OpenGL / 26 13

14 Optimointi Käytä mitä tahansa menetelmiä kohottamaan frameratea Yleisesti: Älä piirrä mitään mitä ei voida nähdä Kaikki on sallittua niin kauan kun se näyttää hyvältä Kerää yleisesti käytetyt objektit ja tila display listoihin Käytä yksipuoleista valaistusta Käytä vain yhtä tai kahta valonlähdettä Määritä katseija äärettömän kauaksi valaistusta laskettaessa Käytä back face cullingia Käytä natiivia kääntäjää (SGI cc tai CC) glcullface(gl_back); gllightmodelf(gl_light_model_two_side, GL_FALSE); gllightmodelf(gl_light_model_local_viewer, GL_FALSE); OpenGL / 27 Lisää optimointia Minimoi geometria ja käytä tekstuureja Käytä GL_TRIANGLE_STRIPia kaikkeen geometriaan, se on nopein Vältä yksittäisiä polygoneja Käytä solmutaulukoita (vertex array, RTFM) Vältä turhia moodin vaihtoja Ryhmittele objektit piirtoa varten materiaalin tekstuurin tai värin mukaan jos mahdollista Käytä vain nimettyjä tekstuureja OpenGL / 28 14

15 Aloittelijoille Ymmärsitlö siirto/pyöritys järjestyksen? Muistitko tyhjentää syvyyspuskurin? Missä objektisi ovat? Ovatko ne projektio frustumissa? Near/Far planes... Käytitkö materiaaleja? Laitapa ne valot päälle. Käytätkö tupla puskurointi? Muista joskus myös vaihtaa puskurit OpenGL komennot menevät putkeen. Jos haluat että komennot suoritetaan välittömästi huuhtele putki glflush():lla Aloita muokkaamaa jo toimivaa pohja sovellusta. OpenGL / 29 15

Sisällys. OpenGL 2. Display-listat. Display-Listat. Display-listat. Display-listat. Tietokonegrafiikka / perusteet Ako/T /301 4 ov / 2 ov

Sisällys. OpenGL 2. Display-listat. Display-Listat. Display-listat. Display-listat. Tietokonegrafiikka / perusteet Ako/T /301 4 ov / 2 ov Tietokonegrafiikka / perusteet Ako/T-111.300/301 4 ov / 2 ov OpenGL 2 Display Listat Tekstitys GLUT:lla Teksturointi Varjot Lopuista harjoituksista Valaistus ja materiaalit GLUT Sisällys Marko Myllymaa

Lisätiedot

OpenGL:n perusteet Osa 3: Teksturointi

OpenGL:n perusteet Osa 3: Teksturointi OpenGL:n perusteet Osa 3: Teksturointi OpenGL on käyttöjärjestelmäriippumaton kirjasto 2D- ja 3D-grafiikan piirtoon. Tämä artikkelisarja opettaa sinulle 3D-grafiikan perusteet OpenGL:ää käyttäen. Esimerkeissä

Lisätiedot

T Tietokonegrafiikan perusteet. OpenGL-ohjelmointi

T Tietokonegrafiikan perusteet. OpenGL-ohjelmointi T-111.4300 Tietokonegrafiikan perusteet OpenGL-ohjelmointi Id Softwaren huhtikuussa 2004 julkaisema Doom 3 -peli käyttää OpenGL-kirjastoa. Sisällys Mikä on OpenGL? historia nykytilanne OpenGL:n toiminta

Lisätiedot

Sisällys. T-111.4300 Tietokonegrafiikan perusteet. OpenGL-ohjelmointi 11/2007. Mikä on OpenGL?

Sisällys. T-111.4300 Tietokonegrafiikan perusteet. OpenGL-ohjelmointi 11/2007. Mikä on OpenGL? T-111.4300 Tietokonegrafiikan perusteet OpenGL-ohjelmointi 11/2007 Sisällys Mikä on OpenGL? historia nykytilanne OpenGL:n toiminta Piirtäminen ja matriisit Muuta hyödyllistä kameran sijoittaminen valaistus

Lisätiedot

Esimerkkejä. OpenGL ohjelma. OpenGL tilakone. Geometriset primitiivit. Hyvät ja huonot polygonit. OpenGL Pipeline. Rasterointi

Esimerkkejä. OpenGL ohjelma. OpenGL tilakone. Geometriset primitiivit. Hyvät ja huonot polygonit. OpenGL Pipeline. Rasterointi Tietokonegrafiikka / perusteet Ako/T-111.300/301 4 ov / 2 ov OpenGL 1 Yleistä harjoituksista OpenGL:n toiminta Primitiivit Kuvapuskurit Koordinaatistot ja projisointi Transformaatiot ja matriisit Valaistus

Lisätiedot

OpenGL:n perusteet - Osa 2: 3D grafiikka

OpenGL:n perusteet - Osa 2: 3D grafiikka OpenGL:n perusteet - Osa 2: 3D grafiikka OpenGL on käyttöjärjestelmäriippumaton kirjasto 2D- ja 3D-grafiikan piirtoon. Tämä artikkelisarja opettaa sinulle 3D-grafiikan perusteet OpenGL:ää käyttäen. Esimerkeissä

Lisätiedot

Luento 6: Piilopinnat ja Näkyvyys

Luento 6: Piilopinnat ja Näkyvyys Tietokonegrafiikan perusteet T-111.4300 3 op Luento 6: Piilopinnat ja Näkyvyys Janne Kontkanen Geometrinen mallinnus / 1 Johdanto Piilopintojen poisto-ongelma Syntyy kuvattaessa 3-ulotteista maailmaa 2-ulotteisella

Lisätiedot

Jypelin käyttöohjeet» Ruutukentän luominen

Jypelin käyttöohjeet» Ruutukentän luominen Jypelin käyttöohjeet» Ruutukentän luominen Pelissä kentän (Level) voi luoda tekstitiedostoon "piirretyn" mallin mukaisesti. Tällöin puhutaan, että tehdään ns. ruutukenttä, sillä tekstitiedostossa jokainen

Lisätiedot

T-111.4310 Vuorovaikutteinen tietokonegrafiikka Tentti 14.12.2011

T-111.4310 Vuorovaikutteinen tietokonegrafiikka Tentti 14.12.2011 T-111.4310 Vuorovaikutteinen tietokonegrafiikka Tentti 14.12.2011 Vastaa kolmeen tehtävistä 1-4 ja tehtävään 5. 1. Selitä lyhyesti mitä seuraavat termit tarkoittavat tai minkä ongelman algoritmi ratkaisee

Lisätiedot

T-110.1100 Johdatus tietoliikenteeseen ja multimediatekniikkaan Tietokonegrafiikka

T-110.1100 Johdatus tietoliikenteeseen ja multimediatekniikkaan Tietokonegrafiikka Johdatus tietoliikenteeseen ja multimediatekniikkaan Tietokonegrafiikka Timo Tossavainen Mediatekniikan laitos, Aalto-yliopiston perustieteiden korkeakoulu Timo.Tossavainen@tkk.fi 25.3.2011 Sisältö Historiaa

Lisätiedot

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille: Merkkijonot C-kielessä merkkijono on taulukko, jonka alkiot ovat char -tyyppiä. Taulukon viimeiseksi merkiksi tulee merkki '\0', joka ilmaisee merkkijonon loppumisen. Merkkijono määritellään kuten muutkin

Lisätiedot

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu Taulukot Taulukon määrittely ja käyttö Taulukko metodin parametrina Taulukon sisällön kopiointi toiseen taulukkoon Taulukon lajittelu esimerkki 2-ulottoisesta taulukosta 1 Mikä on taulukko? Taulukko on

Lisätiedot

Demokoodaus Linuxilla, tapaus Eternity

Demokoodaus Linuxilla, tapaus Eternity Demokoodaus Linuxilla, tapaus Eternity Tuomo Sipola tuomo.sipola@iki.fi Linkin lanit 9.4.2010 Tuomo Sipola tuomo.sipola@iki.fi () Demokoodaus Linuxilla, tapaus Eternity Linkin lanit 9.4.2010 1 / 17 Sisältö

Lisätiedot

Luento 2: Tulostusprimitiivit

Luento 2: Tulostusprimitiivit Tietokonegrafiikan perusteet T-111.4300 3 op Luento : Tulostusprimitiivit Lauri Savioja 11/06 D primitiivit / 1 Sisältö Mallintamisen alkeita Perusprimitiivit (GKS) attribuutteineen Näyttömuisti D primitiivit

Lisätiedot

Tietokonegrafiikka. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2014

Tietokonegrafiikka. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2014 Tietokonegrafiikka Jyry Suvilehto T-110.1100 Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2014 1. Sovellusalueita 2. Rasterigrafiikkaa 3. Vektorigrafiikkaa 4. 3D-grafiikkaa 1. Säteenheitto

Lisätiedot

Toinen harjoitustyö. ASCII-grafiikkaa

Toinen harjoitustyö. ASCII-grafiikkaa Toinen harjoitustyö ASCII-grafiikkaa Yleistä Tehtävä: tee Javalla ASCII-merkkeinä esitettyä grafiikkaa käsittelevä ASCIIArt-ohjelma omia operaatioita ja taulukoita käyttäen. Työ tehdään pääosin itse. Ideoita

Lisätiedot

Luento 4: Näkyvyystarkastelut ja varjot

Luento 4: Näkyvyystarkastelut ja varjot Tietokonegrafiikan jatkokurssi T-111.5300 4 op Luento 4: Näkyvyystarkastelut ja varjot Lauri Savioja 02/07 Näkyvyystarkastelut ja varjot / 1 Näkyvyystarkastelu Solurenderöinti Portaalirenderöinti Quad-/Octtree

Lisätiedot

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä muuttujia ja vakioita. Esittely

Lisätiedot

KÄYTTÖÖN. Koulukirjat tietokoneelle PIKAOHJEET PAPERPORT -OHJELMAN. Sisällysluettelo

KÄYTTÖÖN. Koulukirjat tietokoneelle PIKAOHJEET PAPERPORT -OHJELMAN. Sisällysluettelo Koulukirjat tietokoneelle PIKAOHJEET PAPERPORT -OHJELMAN KÄYTTÖÖN Sisällysluettelo ImageViewer ja PDF Viewer Plus -ohjelmien esittelyt 1 Käytön aloittaminen 1 Työpöydän hyödylliset työkalut 2 Image View

Lisätiedot

IDL - datan sovitus. ATK tähtitieteessä. IDL - esimerkiksi linfit. IDL - esimerkiksi linfit

IDL - datan sovitus. ATK tähtitieteessä. IDL - esimerkiksi linfit. IDL - esimerkiksi linfit IDL - datan sovitus 3. toukokuuta 2017 IDL sisältää monia yleisimpiä funktioita, joita voi helposti sovittaa datapisteisiin. Jos valmiista funktioista ei löydy mieleistä, voi oman mielivaltaisen sovitusfunktion

Lisätiedot

OpenGL:n perusteet Osa 4: Valot ja varjot

OpenGL:n perusteet Osa 4: Valot ja varjot OpenGL:n perusteet Osa 4: Valot ja varjot OpenGL on käyttöjärjestelmäriippumaton kirjasto 2D- ja 3D-grafiikan piirtoon. Tämä artikkelisarja opettaa sinulle 3D-grafiikan perusteet OpenGL:ää käyttäen. Esimerkeissä

Lisätiedot

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.

Lisätiedot

Lyhyt kertaus osoittimista

Lyhyt kertaus osoittimista , syksy 2007 Kertausta Luento 10 12.10.2007 Syksy 2007 1 Lyhyt kertaus osoittimista char *p; /* char, int, jne ilmoittavat, minkä tyyppisiä */ Keskusmuisti int *q; /* olioita sisältäviin muistilohkoihin

Lisätiedot

Tilanhallintatekniikat

Tilanhallintatekniikat Tilanhallintatekniikat 3D grafiikkamoottoreissa Moottori on projektin osa joka vastaa tiettyjen toiminnallisuuksien hallinnasta hallitsee kaikki vastuualueen datat suorittaa kaikki tehtäväalueen toiminnot

Lisätiedot

Action Request System

Action Request System Action Request System Manu Karjalainen Ohjelmistotuotantovälineet seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 25.10.2000 Action Request System (ARS) Manu Karjalainen Ohjelmistotuotantovälineet

Lisätiedot

Luento 10: Näkyvyystarkastelut ja varjot. Sisältö

Luento 10: Näkyvyystarkastelut ja varjot. Sisältö Tietokonegrafiikka / perusteet T-111.300/301 4 ov / 2 ov Luento 10: Näkyvyystarkastelut ja varjot Marko Myllymaa / Lauri Savioja 10/04 Näkyvyystarkastelut ja varjot / 1 Näkyvyystarkastelu Solurenderöinti

Lisätiedot

Muita kuvankäsittelyohjelmia on mm. Paint Shop Pro, Photoshop Elements, Microsoft Office Picture Manager

Muita kuvankäsittelyohjelmia on mm. Paint Shop Pro, Photoshop Elements, Microsoft Office Picture Manager Missio: 1. Asentaminen 2. Valokuvien tarkastelu, tallennus/formaatit, koko, tarkkuus, korjaukset/suotimet, rajaus 3. Kuvan luonti/työkalut (grafiikka kuvat) 4. Tekstin/grafiikan lisääminen kuviin, kuvien/grafiikan

Lisätiedot

ATK tähtitieteessä. Osa 5 - IDL datan sovitusta ja muita ominaisuuksia. 25. syyskuuta 2014

ATK tähtitieteessä. Osa 5 - IDL datan sovitusta ja muita ominaisuuksia. 25. syyskuuta 2014 25. syyskuuta 2014 IDL - datan sovitus IDL sisältää monia yleisimpiä funktioita, joita voi helposti sovittaa datapisteisiin. Jos valmiista funktioista ei löydy mieleistä, voi oman mielivaltaisen sovitusfunktion

Lisätiedot

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus Tampereen yliopisto Tietokonegrafiikka 201 Tietojenkäsittelytiede Harjoitus 6 1..201 1. Tarkastellaan Gouraudin sävytysmallia. Olkoon annettuna kolmio ABC, missä A = (0,0,0), B = (2,0,0) ja C = (1,2,0)

Lisätiedot

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Rekursio Rekursion käyttötapauksia Rekursio määritelmissä Rekursio ongelmanratkaisussa ja ohjelmointitekniikkana Esimerkkejä taulukolla Esimerkkejä linkatulla listalla Hanoin

Lisätiedot

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla ALKUHARJOITUS Kynän ja paperin avulla peilaaminen koordinaatistossa a) Peilaa pisteen (0,0) suhteen koordinaatistossa sijaitseva - neliö, jonka

Lisätiedot

JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++

JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++ JAVA alkeet JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++ ja Javascriptin kanssa. Huom! JAVA ja JavaScript eivät silti ole sama asia, eivätkä edes sukulaiskieliä.

Lisätiedot

Esityksen sisältö. Peruskäsitteitä. 3D Grafiikka tietokonepeleissä. Piirto- ja taustapuskuri

Esityksen sisältö. Peruskäsitteitä. 3D Grafiikka tietokonepeleissä. Piirto- ja taustapuskuri Esityksen sisältö 3D Grafiikka tietokonepeleissä Peruskäsitteitä Korkean tason rakenne Piirron alkeisobjektit Tekstuurit Valotus Laitteistopiirtoliukuhihna Yhteenveto Peruskäsitteitä Piirto- ja taustapuskuri

Lisätiedot

ATK tähtitieteessä. Osa 5 - IDL datan sovitusta ja muita ominaisuuksia. 25. syyskuuta 2014

ATK tähtitieteessä. Osa 5 - IDL datan sovitusta ja muita ominaisuuksia. 25. syyskuuta 2014 25. syyskuuta 2014 IDL - datan sovitus IDL sisältää monia yleisimpiä funktioita, joita voi helposti sovittaa datapisteisiin. Jos valmiista funktioista ei löydy mieleistä, voi oman mielivaltaisen sovitusfunktion

Lisätiedot

Toinen harjoitustyö. ASCII-grafiikkaa 2017

Toinen harjoitustyö. ASCII-grafiikkaa 2017 Toinen harjoitustyö ASCII-grafiikkaa 2017 Yleistä Tehtävä: tee Javalla ASCII-merkkeinä esitettyä grafiikkaa käsittelevä ASCIIArt17-ohjelma omia operaatioita ja taulukoita käyttäen. Työ tehdään pääosin

Lisätiedot

Algoritmit 2. Luento 7 Ti Timo Männikkö

Algoritmit 2. Luento 7 Ti Timo Männikkö Algoritmit 2 Luento 7 Ti 4.4.2017 Timo Männikkö Luento 7 Joukot Joukko-operaatioita Joukkojen esitystapoja Alkiovieraat osajoukot Toteutus puurakenteena Algoritmit 2 Kevät 2017 Luento 7 Ti 4.4.2017 2/26

Lisätiedot

Luento 6: Geometrinen mallinnus

Luento 6: Geometrinen mallinnus Tietokonegrafiikan perusteet T-111.4300 3 op Luento 6: Geometrinen mallinnus Lauri Savioja, Janne Kontkanen 11/2007 Geometrinen mallinnus / 1 Sisältö Mitä on geometrinen mallinnus tietokonegrafiikassa

Lisätiedot

Monipuolinen esimerkki

Monipuolinen esimerkki Monipuolinen esimerkki Lopuksi monipuolinen esimerkki, jossa ohjelmisto koostuu pääohjelmasta ja kahdesta aliohjelmasta, joista toinen on proseduuri ja toinen funktio. Funktio Sqrt(int n): int Sqrt(int

Lisätiedot

Taulukot. Jukka Harju, Jukka Juslin 2006 1

Taulukot. Jukka Harju, Jukka Juslin 2006 1 Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti

Lisätiedot

Luento 6: Tulostusprimitiivien toteutus

Luento 6: Tulostusprimitiivien toteutus Tietokonegrafiikan perusteet T-111.4300 3 op Luento 6: Tulostusprimitiivien toteutus Lauri Savioja 11/07 Primitiivien toteutus / 1 ntialiasointi Fill-algoritmit Point-in-polygon Sisältö Primitiivien toteutus

Lisätiedot

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Kurssin sisältö pääpiirteittäin Tarvittavat pohjatiedot Avainsanat Abstraktio Esimerkkiohjelman tehtäväkuvaus Abstraktion käyttö tehtävässä Abstrakti tietotyyppi Hyötyjä ADT:n

Lisätiedot

Luku 6: Grafiikka. 2D-grafiikka 3D-liukuhihna Epäsuora valaistus Laskostuminen Mobiililaitteet Sisätilat Ulkotilat

Luku 6: Grafiikka. 2D-grafiikka 3D-liukuhihna Epäsuora valaistus Laskostuminen Mobiililaitteet Sisätilat Ulkotilat 2D-grafiikka 3D-liukuhihna Epäsuora valaistus Laskostuminen Mobiililaitteet Sisätilat Ulkotilat 2D-piirto 2-ulotteisen grafiikan piirto perustuu yleensä valmiiden kuvien kopioimiseen näyttömuistiin (blitting)

Lisätiedot

Funktionaalista grafiikkaa

Funktionaalista grafiikkaa Funktionaalista grafiikkaa Tommi Teistelä totateis@jyu.fi 22.4.2008 Tiivistelmä Haskellin kaltaisten funktionaalisten ohjelmointikielten ilmaisukyky mahdollistaa grafiikan koostamisen perinteistä korkeammalla

Lisätiedot

Tehtävä 3 ja 4. 3. aikakausilehden kansi pastissi 4. runokirjan kansi

Tehtävä 3 ja 4. 3. aikakausilehden kansi pastissi 4. runokirjan kansi Tehtävä 3 ja 4 3. aikakausilehden kansi pastissi 4. runokirjan kansi 3. Valitse esim. Opettaja-lehti ja tee sille uusi kansi lehden tyyliin samoilla fonteilla ym. (ohje sille), NYT-liite, tms. käy myös

Lisätiedot

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus 2 7.2.2013 1. Matematiikan lukiokurssissa on esitetty, että ylöspäin aukeavan paraabelin f(x) = ax 2 +bx+c,a > 0,minimikohtasaadaan,kunf

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman

Lisätiedot

Sukupuu -ohjelma. Ossi Väre (013759021) Joni Virtanen (013760641)

Sukupuu -ohjelma. Ossi Väre (013759021) Joni Virtanen (013760641) Sukupuu -ohjelma Ossi Väre (013759021) Joni Virtanen (013760641) 7.11.2011 1 Johdanto Toteutimme C -kielellä sukupuuohjelman, johon käyttäjä voi lisätä ja poistaa henkilöitä ja määrittää henkilöiden välisiä

Lisätiedot

Dynaaminen muisti. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät 2017.

Dynaaminen muisti. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät 2017. C! Dynaaminen muisti 9.2.2017 Agenda Kertausta merkkijonoista Dynaaminen muisti Valgrind-perusteet ja esimerkkejä Seuraava luento to 2.3. Ei harjoituksia arviointiviikolla 13.2. 17.2. 2 Palautetta merkkijonoihin

Lisätiedot

1.1 Pino (stack) Koodiluonnos. Graafinen esitys ...

1.1 Pino (stack) Koodiluonnos. Graafinen esitys ... 1. Tietorakenteet Tietorakenteet organisoivat samankaltaisten olioiden muodostaman tietojoukon. Tämä järjestys voidaan saada aikaan monin tavoin, esim. Keräämällä oliot taulukkoon. Liittämällä olioihin

Lisätiedot

Tietueet. Tietueiden määrittely

Tietueet. Tietueiden määrittely Tietueet Tietueiden määrittely Tietue on tietorakenne, joka kokoaa yhteen eri tyyppistä tietoa yhdeksi asiakokonaisuudeksi. Tähän kokonaisuuteen voidaan viitata yhteisellä nimellä. Auttaa ohjelmoijaa järjestelemään

Lisätiedot

GeoGebra-harjoituksia malu-opettajille

GeoGebra-harjoituksia malu-opettajille GeoGebra-harjoituksia malu-opettajille 1. Ohjelman kielen vaihtaminen Mikäli ohjelma ei syystä tai toisesta avaudu toivomallasi kielellä, voit vaihtaa ohjelman käyttöliittymän kielen seuraavasti: 2. Fonttikoon

Lisätiedot

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta C++ - perusteet Java-osaajille luento 5/7: operaattoreiden ylikuormitus, oliotaulukko, parametrien oletusarvot, komentoriviparametrit, constant, inline, Operaattoreiden ylikuormitus Operaattoreiden kuormitus

Lisätiedot

Sisältö. Luento 6: Piilopinnat. Peruskäsitteet (jatkuu) Peruskäsitteitä. Yksinkertaisia tapauksia. Yksinkertaiset tapaukset jatkuu

Sisältö. Luento 6: Piilopinnat. Peruskäsitteet (jatkuu) Peruskäsitteitä. Yksinkertaisia tapauksia. Yksinkertaiset tapaukset jatkuu Tietokonegrafiikka / perusteet T-111.300/301 4 ov / 2 ov Peruskäsitteitä Z-buffer Syvyyslajittelu Juovalajittelu Rekursiivinen aluejako Piiloviivat Sisältö Luento 6: Piilopinnat Marko Myllymaa 09/03 Piilopinnat

Lisätiedot

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukot C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukon muuttujilla (muistipaikoilla) on yhteinen nimi. Jokaiseen yksittäiseen

Lisätiedot

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä

Lisätiedot

Videon tallentaminen Virtual Mapista

Videon tallentaminen Virtual Mapista Videon tallentaminen Virtual Mapista Kamera-ajon tekeminen Karkean kamera ajon teko onnistuu nopeammin Katseluohjelmassa (Navigointi > Näkymät > Tallenna polku). Liikeradan ja nopeuden tarkka hallinta

Lisätiedot

TIEA341 Funktio-ohjelmointi 1, kevät 2008

TIEA341 Funktio-ohjelmointi 1, kevät 2008 TIEA34 Funktio-ohjelmointi, kevät 2008 Luento 3 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 2. tammikuuta 2008 Ydin-Haskell: Syntaksi Lausekkeita (e) ovat: nimettömät funktiot: \x

Lisätiedot

Osoittimet ja taulukot

Osoittimet ja taulukot Osoittimet ja taulukot Hannu Laine Copyright Hannu Laine Osoittimet int main (void) { int a; int *p; //p on osoitinmuuttuja p = &a; *p = 10; printf( %d, *p); //tulostuu muuttujan a sisältö scanf( %d, p);

Lisätiedot

Harjoitus Morphing. Ilmeiden luonti

Harjoitus Morphing. Ilmeiden luonti LIITE 1 1(5) Harjoitus Morphing Harjoituksessa käsiteltävät asiat: Objektien kopioiminen Editoitavan polygonin muokkaaminen Morph-modifier käyttö ilmeiden luomiseen Lyhyen animaation luonti set key- toimintoa

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

Tieto- ja tallennusrakenteet

Tieto- ja tallennusrakenteet Tieto- ja tallennusrakenteet Sisältö Tyyppi, abstrakti tietotyyppi, abstraktin tietotyypin toteutus Tallennusrakenteet Taulukko Linkitetty rakenne Abstraktit tietotyypit Lista (Puu) (Viimeisellä viikolla)

Lisätiedot

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2 TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos TKT-3200 Tietokonetekniikka I Harjoitustyö 4: Cache, osa 2.. 2010 Ryhmä Nimi Op.num. 1 Valmistautuminen Cache-työn toisessa osassa

Lisätiedot

XNA grafiikka laajennus opas. Paavo Räisänen. www.ohjelmoimaan.net. Tämän oppaan lähdekoodit ovat ladattavissa näiden sivujen Ladattavat osiossa.

XNA grafiikka laajennus opas. Paavo Räisänen. www.ohjelmoimaan.net. Tämän oppaan lähdekoodit ovat ladattavissa näiden sivujen Ladattavat osiossa. XNA grafiikka laajennus opas Paavo Räisänen www.ohjelmoimaan.net Tämän oppaan lähdekoodit ovat ladattavissa näiden sivujen Ladattavat osiossa. Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei

Lisätiedot

6. Harjoitusjakso II. Vinkkejä ja ohjeita

6. Harjoitusjakso II. Vinkkejä ja ohjeita 6. Harjoitusjakso II Seuraavaksi harjoitellaan algebrallisten syötteiden, komentojen ja funktioiden käyttöä GeoGebrassa. Tarjolla on ensimmäisen harjoittelujakson tapaan kahden tasoisia harjoituksia: perustaso

Lisätiedot

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 8: Pienen ohjelmointikielen tulkki (ohjelmoitava laskin) (mm. SICP 4-4.1.5 osin) Riku Saikkonen 15. 11. 2012 Sisältö 1 Nelilaskintulkki, globaalit muuttujat

Lisätiedot

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus

Lisätiedot

Sukelluskeräily, Pelihahmon liikuttaminen. Tee uusi hahmo: Pelihahmo. Nimeä se. Testaa ikuisesti -silmukassa peräkkäisinä testeinä (jos) onko jokin

Sukelluskeräily, Pelihahmon liikuttaminen. Tee uusi hahmo: Pelihahmo. Nimeä se. Testaa ikuisesti -silmukassa peräkkäisinä testeinä (jos) onko jokin Versio 1.0 1 Sukelluskeräily Tässä pelissä keräilet erilaisia aarteita ja väistelet vihollista. Tämän lisäksi pelaajan pitää käydä välillä pinnalla hengittelemässä. Peliin lisätään myös häiriötekijäksi

Lisätiedot

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Ohjelmointi 1 / 2009 syksy Tentti / 18.12 Tentti / 18.12 Vastaa yhteensä neljään tehtävään (huomaa että tehtävissä voi olla useita alakohtia), joista yksi on tehtävä 5. Voit siis valita kolme tehtävistä 1 4 ja tehtävä 5 on pakollinen. Vastaa JOKAISEN

Lisätiedot

Tapio Takala / Lauri Savioja Teknillinen korkeakoulu Tietoliikenneohjelmistojen ja multimedian laboratorio

Tapio Takala / Lauri Savioja Teknillinen korkeakoulu Tietoliikenneohjelmistojen ja multimedian laboratorio T-110.1100 Johdatus tietoliikenteeseen ja multimediatekniikkaan Tietokonegrafiikka Tapio Takala / Lauri Savioja Teknillinen korkeakoulu Tietoliikenneohjelmistojen ja multimedian laboratorio T-110.1100

Lisätiedot

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 11: Tulkin muokkaaminen, sisäiset määrittelyt, makrot (mm. SICP 3.2.4, 4-4.1.6) Riku Saikkonen 29. 11. 2012 Sisältö 1 Kirjan tulkin muokkaaminen 2 Yksityiskohta:

Lisätiedot

TIEA341 Funktio-ohjelmointi 1, kevät 2008

TIEA341 Funktio-ohjelmointi 1, kevät 2008 TIEA341 Funktio-ohjelmointi 1, kevät 2008 Luento 4 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 17. tammikuuta 2008 Modulin viimeistelyä module Shape ( Shape ( Rectangle, E l l i p

Lisätiedot

7/20: Paketti kasassa ensimmäistä kertaa

7/20: Paketti kasassa ensimmäistä kertaa Ohjelmointi 1 / syksy 2007 7/20: Paketti kasassa ensimmäistä kertaa Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007

Lisätiedot

OpenGL:n perusteet - Osa 1: Ikkunan luominen

OpenGL:n perusteet - Osa 1: Ikkunan luominen OpenGL:n perusteet - Osa 1: Ikkunan luominen OpenGL on käyttöjärjestelmäriippumaton kirjasto 2D- ja 3D-grafiikan piirtoon. Tämä artikkelisarja opettaa sinulle 3D-grafiikan perusteet OpenGL:ää käyttäen.

Lisätiedot

Sisältö. 22. Taulukot. Yleistä. Yleistä

Sisältö. 22. Taulukot. Yleistä. Yleistä Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä

Lisätiedot

Hakemistojen sisällöt säilötään linkitetyille listalle.

Hakemistojen sisällöt säilötään linkitetyille listalle. Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi Java-kielellä komentoikkunaa (komentotulkkia, komentoriviä) simuloiva olioperustainen ohjelma. Hakemistojen sisällöt säilötään linkitetyille listalle. Työ

Lisätiedot

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 10: Paikalliset muuttujat, kirjan tulkki kokonaisuutena (mm. SICP 3.2, 4.1.24.1.6) Riku Saikkonen 22. 11. 2012 Sisältö 1 Ympäristöt: miten paikalliset

Lisätiedot

Fixcom Webmail ohje. Allekirjoitus. Voit lisätä yhden tai useamman allekirjoituksen.

Fixcom Webmail ohje. Allekirjoitus. Voit lisätä yhden tai useamman allekirjoituksen. Webmail on monipuolinen työkalu jolla voi tehdä paljon muutakin kuin lukea sähköpostia. Tässä ohjeessa on lyhyesti esitelty joitakin sen ominaisuuksia. Peruspostilaatikossa ei ole kaikkia ominaisuuksia,

Lisätiedot

Public Account-tili on pysyvä, joten kannattaa käyttää mieluummin sitä kuin kaupallisen tilin kokeiluversiota.

Public Account-tili on pysyvä, joten kannattaa käyttää mieluummin sitä kuin kaupallisen tilin kokeiluversiota. 1.1 Tässä harjoituksessa opit laatimaan luokitellun teemakartan maastossa aiemmin keräämistäsi pisteistä. Käytämme Esrin ArcGis-palvelun ilmaisia ominaisuuksia. Kartan tekoa voi harjoitella kokonaan ilman

Lisätiedot

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 4: Symbolit, derivojaesimerkki, kierroksen 1 ratkaisut (mm. SICP 2.32.3.2) Riku Saikkonen 1. 11. 2011 Sisältö 1 Symbolit ja sulkulausekkeet 2 Lisää Schemestä:

Lisätiedot

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta. Tehtävä 63. Kirjoita oma versio funktiosta strcmp(),joka saa parametrinaan kaksi merkkiosoitinta. Tee ohjelma, jossa luetaan kaksi merkkijonoa, joita sitten verrataan ko. funktiolla. Tehtävä 64. Kirjoita

Lisätiedot

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI 1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI 1 1.1 Funktion optimointiin perustuvat klusterointialgoritmit Klusteroinnin onnistumista mittaavan funktion J optimointiin perustuvissa klusterointialgoritmeissä

Lisätiedot

Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.

Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei. Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi lötköjen kansoittamaa alkulimaa simuloiva olioperustainen ohjelma Java-kielellä. Lötköt säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti

Lisätiedot

LIITE 1 1. Tehtävänä on mallintaa kitara ohjeiden mukaan käyttäen Edit Poly-tekniikkaa.

LIITE 1 1. Tehtävänä on mallintaa kitara ohjeiden mukaan käyttäen Edit Poly-tekniikkaa. LIITE 1 1 HARJOITUS 1 Kitara Tehtävänä on mallintaa kitara ohjeiden mukaan käyttäen Edit Poly-tekniikkaa. Käsiteltävät asiat Edit Poly Muokkaus kuvan mukaan TurboSmooth Extrude 1. Tarkistetaan että mittayksiköt

Lisätiedot

Taulukot, taulukkoryhmät Sisällysluettelo

Taulukot, taulukkoryhmät Sisällysluettelo Excel 2013 Taulukot, taulukkoryhmät Sisällysluettelo TAULUKKORYHMÄT TAULUKOIDEN VÄLISET KAAVAT, FUNKTIOT YM.... 1 Taulukon lisääminen työkirjaan... 1 Taulukon (välilehden) poistaminen työkirjasta... 1

Lisätiedot

TYYLIT. Word Tyylit

TYYLIT. Word Tyylit Word 2013 Tyylit TYYLIT TYYLIT... 1 Pikatyylien käyttäminen... 1 Tyylimuotoilun poistaminen... 2 Tyylin muokkaaminen... 2 Uuden tyylin luominen muotoillusta tekstistä... 2 Uuden tyylin luominen valintataulussa...

Lisätiedot

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT PERUSTIETORAKENTEET LISTA, PINO, JONO, PAKKA ABSTRAKTI TIETOTYYPPI Tietotyyppi on abstrakti, kun se on määritelty (esim. matemaattisesti) ottamatta kantaa varsinaiseen

Lisätiedot

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Taulukon edut Taulukon haitat Taulukon haittojen välttäminen Dynaamisesti linkattu lista Linkatun listan solmun määrittelytavat Lineaarisen listan toteutus dynaamisesti linkattuna

Lisätiedot

Tietorakenteet, laskuharjoitus 3, ratkaisuja

Tietorakenteet, laskuharjoitus 3, ratkaisuja Tietorakenteet, laskuharjoitus 3, ratkaisuja 1. (a) Toistolauseen runko-osassa tehdään yksi laskuoperaatio, runko on siis vakioaikainen. Jos syöte on n, suoritetaan runko n kertaa, eli aikavaativuus kokonaisuudessaan

Lisätiedot

Hannu Mäkiö. kertolasku * jakolasku / potenssiin korotus ^ Syöte Geogebran vastaus

Hannu Mäkiö. kertolasku * jakolasku / potenssiin korotus ^ Syöte Geogebran vastaus Perusohjeita, symbolista laskentaa Geogebralla Kielen vaihtaminen. Jos Geogebrasi kieli on vielä englanti, niin muuta se Options välilehdestä kohdasta Language suomeksi (finnish). Esittelen tässä muutaman

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat

Lisätiedot

QT tyylit. Juha Järvensivu 2008

QT tyylit. Juha Järvensivu 2008 QT tyylit Juha Järvensivu juha.jarvensivu@tut.fi 2008 Sisällys QStyle Style sheet Tyyli (QStyle) Kapseloi widgettien Look And Feel ominaisuudet Toteutettu QT:ssa QStyle luokkaan Sisäänrakennettuja tyylejä

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 20. huhtikuuta 2018 Vastaa kaikkiin tehtäviin. Tee kukin tehtävä omalle konseptiarkille. Noudata ohjelmointitehtävissä kurssin koodauskäytänteitä.

Lisätiedot

TIEA341 Funktio-ohjelmointi 1, kevät 2008

TIEA341 Funktio-ohjelmointi 1, kevät 2008 TIEA341 Funktio-ohjelmointi 1, kevät 2008 Luento 14: Monadit Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 21. tammikuuta 2008 Tyyppien tyypit eli luonteet engl. kind tyyppinimet, kuten

Lisätiedot

Vapo: Turveauman laskenta 1. Asennusohje

Vapo: Turveauman laskenta 1. Asennusohje Turveauman mittaus 3D-system Oy 3D-Win ohjelman lisätoiminto, jolla lasketaan turveaumasta tilaajan haluamat arvot ja piirretään aumasta kuva. Laskentatoiminto löytyy kohdasta Työkalut/Lisätoiminnot. Valitse

Lisätiedot

Miten siirrän omat työni Office 365:stä Peda.nettiin sekä jaan sen siellä muille Eija Arvola

Miten siirrän omat työni Office 365:stä Peda.nettiin sekä jaan sen siellä muille Eija Arvola Miten siirrän omat työni Office 365:stä Peda.nettiin sekä jaan sen siellä muille Eija Arvola 16.12.2017 UUDEN SIVUN LUOMINEN OMAAN TILAAN Jos haluat tallentaa omia töitäsi Peda.nettiin, sinun pitää luoda

Lisätiedot

TEKSTINKÄSITTELYTEHTÄVIÄ, OSA 1

TEKSTINKÄSITTELYTEHTÄVIÄ, OSA 1 TEKSTINKÄSITTELYTEHTÄVIÄ, OSA 1 1 Perustekstejä Tehtävän tarkoituksena on varmistaa tietty perusosaaminen tekstinkäsittelystä sekä lisäksi tässä tulee mukaan myös hiukkasen suomen kielen oikeinkirjoitustakin.

Lisätiedot

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT GRAAFITEHTÄVIÄ JA -ALGORITMEJA Lähteet: Timo Harju, Opintomoniste Keijo Ruohonen, Graafiteoria (math.tut.fi/~ruohonen/gt.pdf) GRAAFIN LÄPIKÄYMINEN Perusta useimmille

Lisätiedot

2. Olio-ohjelmoinista lyhyesti 2.1

2. Olio-ohjelmoinista lyhyesti 2.1 2. Olio-ohjelmoinista lyhyesti 2.1 Sisällys Yleistä. Oliot ja luokat. Attribuutit. Olioiden esittely ja alustus. Rakentajat. Olion operaation kutsuminen. 2.2 Yleistä Olio-ohjelmointia käsitellään hyvin

Lisätiedot

Rakenteiset tietotyypit Moniulotteiset taulukot

Rakenteiset tietotyypit Moniulotteiset taulukot C! Rakenteiset tietotyypit Moniulotteiset taulukot 22.2.2018 Agenda Rakenteiset tietotyypit Vilkaisu 6. kierroksen tehtäviin Moniulotteiset taulukot Esimerkki Seuraava luento to 8.3. Ilmoittautuminen ohjelmointikokeeseen

Lisätiedot

58131 Tietorakenteet ja algoritmit (syksy 2015)

58131 Tietorakenteet ja algoritmit (syksy 2015) 58131 Tietorakenteet ja algoritmit (syksy 2015) Harjoitus 2 (14. 18.9.2015) Huom. Sinun on tehtävä vähintään kaksi tehtävää, jotta voit jatkaa kurssilla. 1. Erään algoritmin suoritus vie 1 ms, kun syötteen

Lisätiedot