Luento 2: 2D Katselu. Sisältö
|
|
- Seppo Matti Sariola
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 Tietokonegrafiikan perusteet T op Luento 2: 2D Katselu Lauri Savioja 11/07 2D katselu / 1 Sisältö Ikkuna ja näyttöalue Viivanleikkaus ikkunaan Monikulmion leikkaus ikkunaan Tekstin leikkaus Erikoistapauksia 2D katselu / 2 1
2 Ikkunointi ja leikkaus Ongelma Halutaan käyttää ohjelmassa sovelluskohteeseen sopivia koordinaatteja, mutta piirtää sama kuva eri laitteilla, joilla on aivan erilainen koordinaatisto. Esim. karttasovelluksen perusyksikkönä metri kohteena 100 x 100 km maa-alue näyttölaitteen resoluutio 480 x 640 pikseliä, piirturin resoluutio x 7000 askelta. Ajatus: Irrotetaan kuvien määrittely niiden piirtämisestä. Luovutaan ohjelmassa laitekoordinaatistosta (DC) ja käytetään maailmankoordinaatistoa (WC). Y y X x World Coordinates (WC) Device Coordinates (DC) 2D katselu / 3 Katseluoperaatio Graafiset tulostusprimitiivit "piirtävät" kuviteltua maailmaa. Laitteelle kuva syntyy "katselemalla" maailmaa ikkunan läpi. Ikkunan ulkopuolelle jäävät osat leikataan pois. Jäljelle jääneet osat muunnetaan laitekoordinaatistoon. 2D katselu / 4 2
3 Ikkunan ja näyttöalueen suhteet Ikkunan () avulla olemme saaneet määritellyksi sen alueen "maailmasta", jonka pitäisi näkyä. Miten määrittelemme laitteen kuva-alueelta sen osa-alueen, jolle "näkymä" halutaan piirtää? Kuva-alue jaetaan osa-alueisiin, joita kutsutaan näyttöalueiksi (viewport), vrt. frame:t www-sivuilla Erityisesti vuorovaikutteisessa grafiikassa useat yhtäaikaiset näyttöalueet (viewport) ovat tärkeitä. 2D katselu / 5 Ikkuna-näyttöalue (jatkuu) Ikkuna-näyttöalue-muunnos yw yd WT VT WB WC WL WR Kuvaus maailmankoordinaatistosta (ikkunasta) kuva-alueen koordinaatistoon (näyttöalueelle): VR! VL x D = (x w! W L) + V WR! WL eli x D = a x W + b y D = c y W + d VT! VB yd = (yw! W B) + V missä a = (V R - V L ) / (W R - W L ) WT! WB b = V L - a W L (vast. c ja d) Ts. kukin piste vaatii 2 kertolaskua ja 2 yhteenlaskua. xw 2D katselu / 6 VB DC VL VR xd L B 3
4 Viivakuvion leikkaus ikkunaan Esim. viiden viivan ketjusta (1 polyline) jää jäljelle neljä viivaa (2 ketjua): polyline polyline1 polyline Viivakuvion kukin jana leikataan erikseen: Rasterilaitteilla leikkaus voi tapahtua juovakonversion yhteydessä (vain ikkunassa olevat pikselit piirretään). Mieluummin lasketaan ensin näkyvälle janan osalle uudet päätepisteet. 2D katselu / 7 Viivakuvion leikkaus (jatkuu) Vertaamalla janan päätepisteitä ikkunarajoihin saadaan nopeasti selville kolme vaihtoehtoa: 1) Viivan molemmat päätepisteet ikkunan sisällä => viiva kokonaan näkyvissä: PIIRRÄ 2) Viivan toinen päätepiste ikkunan sisällä, toinen ulkona => osa näkyvissä: LEIKKAA 3) Viivan molemmat päätepisteet ulkona a) => osa näkyvissä: LEIKKAA b) => viiva ulkona : UNOHDA Kuinka päästään nopeasti helppoihin tapauksiin? 2D katselu / 8 4
5 Viivanleikkaus (jatkuu) Cohen-Sutherland-algoritmi Pyritään välttämään viiva-reuna leikkausten laskeminen mahd. pitkälle Testataan voidaanko jokin viiva piirtää kokonaan Testataan voidaanko jokin viiva jättää kokonaan piirtämättä Leikataan viiva reunan kohdalta, siten, että osa siitä voidaan hyväksyä Jatketaan jokaiselle viivalle ed. askelta, kunnes jäljelle jäävät osat voidaan joko hyväksyä tai hylätä 2D katselu / 9 Viivakuvion leikkaus (jatkuu) Cohen-Sutherland-algoritmi: koodataan viivan P1, P2 molemmat päätepisteet neljällä bitillä, jotka kertovat, minkä ikkunarajojen (tai niiden jatkeitten) suhteen ollaan ulkopuolella: b b3 b2 b Huomio #1 : ( Code (P1) = 0 ) and ( Code (P2) = 0 ) => viiva kokonaan sisällä : PIIRRÄ Huomio #2 : ( Code (P1) and Code (P2) ) <> 0 => viiva kokonaan saman rajan ulkopuolella : UNOHDA 2D katselu / 10 5
6 var Leikkaus-koodi (Cohen-Sutherland) : record xl, xr, yb, rt : real end; procedure Clip_line (x1, y1, x2, y2 : real); type edge = (left, right, bottom, top); outcode = set of edge; var c, c1, c2 : outcode; x, y : real; procedure code (x, y : real; var c : outcode); c := [ ]; if x <.xl then c := [left] else if x >.xr then c := [right]; if y <.yb then c := c + [bottom] else if y >.yt then c := c + [top]; end; code(x1, y1, c1); code(x2, y2, c2); while (((c1 <> [ ]) or (c2 <> [ ])) and (c1 * c2 = [ ])) do if c1 <> [ ] then c := c1 else c := c2; if left in c then { left edge crossed } x :=.xl; y := y1 + (.xl - x1) * (y2 - y1) / (x2 - x1); end else if right in c then { right edge crossed } x :=.xr; y := y1 + (.xr - x1) * (y2 - y1) / (x2 - x1); end else if bottom in c then { bottom edge crossed } y :=.yb; x := x1 + (.yb - y1) * (x2 - x1) / (y2 - y1); end else if top in c then { top edge crossed } y :=.yt; x := x1 + (.yt - y1) * (x2 - x1) / (y2 - y1); end; if c = c1 then x1 := x; y1 := y; code(x1, y1, c1) end else x2 := x; y2 := y; code(x2, y2, c2) end end; if (c1 = [ ]) and (c2 = [ ]) then showline(x1, y1, x2, y2); end; 2D katselu / 11 Viivanleikkaus (jatkuu) Kuinka monta kertaa ohjelman while-osa enintään suoritetaan? kukin suoritus sisältää yhden kerto- ja jakolaskun liukuluvuilla maksimi: 4 * ja 4 / operaatiota 2D katselu / 12 6
7 Viivanleikkausalgoritmit (jatkuu) Liang-Barsky-algoritmi: tarkastellaan janaa parametrimuodossa: p(u) = p 1 + u p = p 1 + u (p 2 - p 1 ) ; u [0..1] eli x(u) = x 1 + X * u = x 1 + (x 2 - x 1 ) * u y(u) = y 1 + Y * u = y 1 + (y 2 - y 1 ) * u ikkunan sisällä olo voidaan ilmaista epäyhtälöillä W left <= x(u) <= W right W bottom <= y(u) <= W top joista jokainen on muotoa p k u q k 2D katselu / 13 Viivanleikkaus (jatkuu) janan ja ikkunareunan leikkauspisteitä voidaan tutkia parametrin u suhteen, laskematta leikkauksen (x,y)-koordinaatteja: jos leikattava, niin lasketaan r = q k / p k, jota verrataan aikaisempiin janan päätepisteiden parametriarvoihin u 1 ja u 2 (aluksi 0 ja 1) p:n etumerkistä ja vertailuista r:n ja u 1,2 :n välillä saadaan selville hylättävät viivat leikkauspisteet lasketaan vasta lopuksi u:n perusteella, jos ikkunan sisälle jäi mitään vertailu Cohen-Sutherland-algoritmiin: kaikki neljä leikkausta lasketaan aina, jollei janaa hylätä ikkunan ulkopuolisena leikkauksen laskeminen vaatii vain jakolaskun; toisaalta neljä kertolaskua tarvitaan lopullisten koordinaattien laskennassa summa summarum: (a) algoritmit voittavat toisensa eri tilanteissa (b) neljää leikkauslaskentaa ei voi välttää 2D katselu / 14 7
8 Taas uusi viivanleikkausalgoritmi Geometrinen puolitushaku (midpoint subdivision algorithm): tutkitaan janan päätepisteitä kuten edellä: jos kokonaan sisällä tai ulkona => PIIRRÄ tai UNOHDA muuten jaa viiva puoliksi ja toista sama rekursiivisesti kummallekin puolikkaalle tehokasta, koska: puolituspisteen haku kokonaislukukoordinaatistossa vaatii vain yhteenlaskun ja shift:in: x m = ( x 1 + x 2 ) / 2 y m = ( y 1 + y 2 ) / 2 rekursio voidaan toteuttaa iteraationa laitetasolla toistojen maksimimäärä = log 2 (ikkunan resoluutio) näkyvien osien piirtäminen voidaan suorittaa lopuksi yhdellä kertaa, kun leikkauspisteet on haettu. 2D katselu / 15 Esim. Geometrinen puolitus (jatkuu) 1 1/ /4 1/ D katselu / 16 8
9 Monikulmioalueen leikkaus Alueen täyttöalgoritmit edellyttävät, että rajat muodostavat yhtenäisen sulkeutuvan monikulmion => pelkkä erillisten viivojen leikkaus ei riitä, vaan kuvio on suljettava lisäviivoilla ikkunarajoja pitkin Esim. fill-area lisäviiva 2D katselu / 17 Monikulmion leikkaus (jatkuu) Sutherland-Hodgman-algoritmi Idea: on helppo suorittaa leikkaus yhden (äärettömän) suoran suhteen kerrallaan. Esim. clip left Huom! clip top clip right clip bottom Huom! 2D katselu / 18 9
10 Monikulmion leikkaus (jatkuu) Sutherland-Hodgman-algoritmin idea: monikulmion esitys on nurkkapisteiden jono (stream) kutakin pistettä jonossa verrataan ikkunareunaan: sisällä => säilytä jonossa ulkona => unohda aina, kun ikkunan reuna ylitetään (perättäiset pisteet eri puolilla), lisätään leikkauspiste jonoon myös viimeisen ja ensimmäisen pisteen väli tutkitaan, jotta kuvio sulkeutuisi 2D katselu / 19 Sutherland-Hodgman (jatkuu) esim. p1 p2 p3 p4 p5 p6 p7 ( p1) => p1' p2 p3 p3' p4' p5 p5' ( p1') p1 p2 p1' p2 p7 p4 p3 p3' p3 p4' p5 p5 p6 p5' uusi pistejono siirretään seuraavan ikkunarajan suhteen leikkaavalle proseduurille tuloksena aina yhtenäinen sulkeutuva reunaviiva, vaikka alue pilkkoutuisikin => voi tulla ylimääräisiä reunoja, kuten p3' p4' Kuinka toimitaan, jos näitä halutaan välttää? 2D katselu / 20 10
11 Tekstin leikkaus "Kaikki tai ei mitään" -periaate kolmella eri tasolla toteutettuna: a) koko merkkijono tai sana b) yksi kirjain kerrallaan c) kirjaimen jokainen viiva tai pikseli 2D katselu / 21 Erikoistapaukset (jatkuu) Reiälliset monikulmiot moniosaisia tietorakenteita, esim. listarakenteita ((p1 p2 p3 p4 p5 p6) (q1 q2 q3 q4)) tai yhdistetään erilliset reunat apuviivoilla yhdeksi p1 p2 p3 q2 q1 q4 q3 q2 p3 p4 p5 p6 Huom! kiertosuunta, jana p3 q2 kahdesti Mielivaltaisen muotoiset ikkunan reunaviivat (stencil) esim. PostScript-kielessä 2D katselu / 22 11
Luento 3: 2D Katselu. Sisältö
Tietokonegrafiikan perusteet T-111.4300 3 op Luento 3: 2D Katselu Lauri Savioja 11/06 2D katselu / 1 Sisältö Ikkuna ja näyttöalue Viivanleikkaus ikkunaan Monikulmion leikkaus ikkunaan Tekstin leikkaus
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
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
Luento 2: Viivan toteutus
Tietokonegrafiikan perusteet T-111.4300 3 op Luento : Viivan toteutus Lauri Savioja 11/07 Primitiivien toteutus / 1 GRAAFISTEN PRIMITIIVIEN TOTEUTUS HUOM! Oletuksena on XY-koordinaatisto Suorien viivojen
Luento 3: Tulostusprimitiivien toteutus
Tietokonegrafiikan perusteet T-111.4300 3 op Luento 3: Tulostusprimitiivien toteutus Lauri Savioja 11/05 Primitiivien toteutus / 1 Suora ja ympyrä Antialiasointi Fill-algoritmit Point-in-polygon Sisältö
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
Numeeriset menetelmät
Numeeriset menetelmät Luento 2 To 8.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 1/33 p. 1/33 Lukujen tallennus Kiintoluvut (integer) tarkka esitys aritmeettiset operaatiot
811120P Diskreetit rakenteet
811120P Diskreetit rakenteet 2016-2017 ari.vesanen (at) oulu.fi 5. Rekursio ja induktio Rekursio tarkoittaa jonkin asian määrittelyä itseensä viittaamalla Tietojenkäsittelyssä algoritmin määrittely niin,
Sisältö. Luento 2: Tulostusprimitiivien toteutus GRAAFISTEN PRIMITIIVIEN TOTEUTUS. Piirtäminen rasteriruudulle. Suoran viivan vaatimukset
Sisältö Tietokonegrafiikka / perusteet Tik-111.300/301 4 ov / 2 ov Suora ja ympyrä Antialiasointi Fill-algoritmit Point-in-polygon Luento 2: Tulostusprimitiivien toteutus Lauri Savioja 09/03 Primitiivien
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
Nopea kertolasku, Karatsuban algoritmi
Nopea kertolasku, Karatsuban algoritmi Mikko Männikkö 16.8.2004 Lähde: ((Gathen and Gerhard 1999) luku II.8) Esityksen kulku Algoritmien analysointia (1), (2), (3), (4) Klassinen kertolasku Parempi tapa
Luento 3: 3D katselu. Sisältö
Tietokonegrafiikan perusteet T-.43 3 op Luento 3: 3D katselu Lauri Savioja Janne Kontkanen /27 3D katselu / Sisältö Kertaus: koordinaattimuunnokset ja homogeeniset koordinaatit Näkymänmuodostus Kameran
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)
Tehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003
Tehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003 Matti Nykänen 5. joulukuuta 2003 1 Satelliitit Muunnetaan luennoilla luonnosteltua toteutusta seuraavaksi: Korvataan puusolmun p kentät p. key ja
Algoritmit 2. Luento 13 Ti Timo Männikkö
Algoritmit 2 Luento 13 Ti 30.4.2019 Timo Männikkö Luento 13 Simuloitu jäähdytys Merkkijonon sovitus Horspoolin algoritmi Ositus ja rekursio Rekursion toteutus Algoritmit 2 Kevät 2019 Luento 13 Ti 30.4.2019
Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)
VISUAL BASIC OHJEITA Kutsuttava ohjelma alkaa kometoparilla Sub... End Sub Sub ohjelmanimi()...koodia... End Sub Muuttujat Muuttujan esittely Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency,
4 Tehokkuus ja algoritmien suunnittelu
TIE-20100 Tietorakenteet ja algoritmit 52 4 Tehokkuus ja algoritmien suunnittelu Tässä luvussa pohditaan tehokkuuden käsitettä ja esitellään kurssilla käytetty kertaluokkanotaatio, jolla kuvataan algoritmin
Algoritmit 1. Luento 11 Ti Timo Männikkö
Algoritmit 1 Luento 11 Ti 14.2.2017 Timo Männikkö Luento 11 Algoritminen ongelmanratkaisu Osittaminen Lomituslajittelu Lomituslajittelun vaativuus Rekursioyhtälöt Pikalajittelu Algoritmit 1 Kevät 2017
815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava
4. Esittäminen ja visualisointi (renderöinti)
4. Esittäminen ja visualisointi (renderöinti) Tutkitaan erilaisia renderöintimenetelmiä, joita käytetään luvuissa 2 ja 3 esitettyjen kuvien esitysmuotojen visualisointiin. Seuraavassa selvitetään: (1)
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
Käy vastaamassa kyselyyn kurssin pedanet-sivulla (TÄRKEÄ ensi vuotta ajatellen) Kurssin suorittaminen ja arviointi: vähintään 50 tehtävää tehtynä
Käy vastaamassa kyselyyn kurssin pedanet-sivulla (TÄRKEÄ ensi vuotta ajatellen) Kurssin suorittaminen ja arviointi: vähintään 50 tehtävää tehtynä (vihkon palautus kokeeseen tullessa) Koe Mahdolliset testit
Luento 6: Geometrinen mallinnus
Tietokonegrafiikan perusteet T-111.4300 3 op Luento 6: Geometrinen mallinnus Lauri Savioja 11/05 Geometrinen mallinnus / 1 Mitä on mallintaminen? Perusmenetelmät Mallihierarkiat Sisältö Geometrinen mallinnus
Paikkatiedon käsittely 4. Diskreettiä geometriaa
HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Paikkatiedon käsittely 4. Diskreettiä geometriaa Antti Leino antti.leino@cs.helsinki.fi 25.1.2007 Tietojenkäsittelytieteen laitos Laskentatarkkuuden
4.3. Matemaattinen induktio
4.3. Matemaattinen induktio Matemaattinen induktio: Deduktion laji Soveltuu, kun ominaisuus on osoitettava olevan voimassa luonnollisilla luvuilla. Suppea muoto P(n) : Ominaisuus, joka joka riippuu luvusta
Yleistä vektoreista GeoGebralla
Vektoreita GeoGebralla Vektoreilla voi laskea joko komentopohjaisesti esim. CAS-ikkunassa tai piirtämällä piirtoikkunassa. Ensimmäisen tavan etuna on, että laskujen tueksi muodostuu kuva. Tästä on varmasti
815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset
815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset Harjoituksen aiheena on funktionaalinen ohjelmointi Scheme- ja Haskell-kielillä. Voit suorittaa ohjelmat osoitteessa https://ideone.com/
Grafiikka 205. Tässä luvussa käsitellään geometriaa ja graafisia kohteita. Mukana on pääosin alkeisoperaatioita.
Grafiikka 205 9 Grafiikka Tässä luvussa käsitellään geometriaa ja graafisia kohteita. Mukana on pääosin alkeisoperaatioita. 9.1 Kolmio Seuraavana tutkimme kolmiota: Minkä tahansa kolmion ala saadaan kaavasta:
Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten,
Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten, että se pystyy suorittamaan kaikki mahdolliset algoritmit?
Peruskoulun matematiikkakilpailu Loppukilpailu 2010 Ratkaisuja OSA 1
Peruskoulun matematiikkakilpailu Loppukilpailu 010 Ratkaisuja OSA 1 1. Mikä on suurin kokonaisluku, joka toteuttaa seuraavat ehdot? Se on suurempi kuin 100. Se on pienempi kuin 00. Kun se pyöristetään
LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100
Tiedonsiirtokäskyt LOAD LOAD-käsky toimii jälkimmäisestä operandista ensimmäiseen. Ensimmäisen operandin pitää olla rekisteri, toinen voi olla rekisteri, vakio tai muistiosoite (myös muuttujat ovat muistiosoitteita).
Yhtälön oikealla puolella on säteen neliö, joten r. = 5 eli r = ± 5. Koska säde on positiivinen, niin r = 5.
Tekijä Pitkä matematiikka 5 7..017 31 Kirjoitetaan yhtälö keskipistemuotoon ( x x ) + ( y y ) = r. 0 0 a) ( x 4) + ( y 1) = 49 Yhtälön vasemmalta puolelta nähdään, että x 0 = 4 ja y 0 = 1, joten ympyrän
MAB3 - Harjoitustehtävien ratkaisut:
MAB - Harjoitustehtävien ratkaisut: Funktio. Piirretään koordinaatistoakselit ja sijoitetaan pisteet:. a) Funktioiden nollakohdat löydetään etsimällä kuvaajien ja - akselin leikkauspisteitä. Funktiolla
Algoritmit 2. Luento 9 Ti Timo Männikkö
Algoritmit 2 Luento 9 Ti 17.4.2018 Timo Männikkö Luento 9 Merkkitiedon tiivistäminen Huffmanin koodi LZW-menetelmä Taulukointi Editointietäisyys Algoritmit 2 Kevät 2018 Luento 9 Ti 17.4.2018 2/29 Merkkitiedon
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
Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen
Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari 1 1. JOHDANTO 1.1 Määritelmiä 1.2 Tietorakenteen ja algoritmin valinta 1.3 Algoritmit ja tiedon määrä 1.4 Tietorakenteet ja toiminnot 1.5 Esimerkki:
A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.
Esimerkki otteluvoiton todennäköisyys A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Yksittäisessä pelissä A voittaa todennäköisyydellä p ja B todennäköisyydellä q =
Racket ohjelmointia osa 1. Tiina Partanen Lielahden koulu 2014
Racket ohjelmointia osa 1 Tiina Partanen Lielahden koulu 2014 Sisältö 1) Peruslaskutoimitukset 2) Peruskuvioiden piirtäminen 3) Määrittelyt (define) 4) Yhdistettyjen kuvien piirtäminen 5) Muuttujat ja
A-osio. Tehdään ilman laskinta ja taulukkokirjaa! Valitse tehtävistä A1-A3 kaksi ja vastaa niihin. Maksimissaan tunti aikaa suorittaa A-osiota.
MAA5.2 Loppukoe 24.9.2013 Jussi Tyni Valitse 6 tehtävää Muista merkitä vastauspaperiin oma nimesi ja tee etusivulle pisteytysruudukko Kaikkiin tehtävien ratkaisuihin välivaiheet näkyviin! A1. A-osio. Tehdään
10. Esitys ja kuvaus
10. Esitys ja kuvaus Kun kuva on ensin segmentoitu alueisiin edellisen luvun menetelmin, segmentoidut pikselit kootaan esittämään ja kuvaamaan kohteita muodossa, joka sopii hyvin jatkokäsittelyä varten.
Monikulmiot 1/5 Sisältö ESITIEDOT: kolmio
Monikulmiot 1/5 Sisältö Monikulmio Monikulmioksi kutsutaan tasokuviota, jota rajaa perättäisten janojen muodostama monikulmion piiri. Janat ovat monikulmion sivuja, niiden päätepisteet monikulmion kärkipisteitä.
Algoritmit 2. Luento 6 Ke Timo Männikkö
Algoritmit 2 Luento 6 Ke 29.3.2017 Timo Männikkö Luento 6 B-puun operaatiot B-puun muunnelmia Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2017 Luento 6 Ke 29.3.2017 2/31 B-puu
Paikkatiedon hallinta ja analyysi 2. Diskreettiä geometriaa
HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Paikkatiedon hallinta ja analyysi 2. Diskreettiä geometriaa Antti Leino 17. maaliskuuta 2005 Tietojenkäsittelytieteen
Tarkennamme geneeristä painamiskorotusalgoritmia
Korotus-eteen-algoritmi (relabel-to-front) Tarkennamme geneeristä painamiskorotusalgoritmia kiinnittämällä tarkasti, missä järjestyksessä Push- ja Raise-operaatioita suoritetaan. Algoritmin peruskomponentiksi
1 Erilaisia tapoja järjestää
TIE-20100 Tietorakenteet ja algoritmit 1 1 Erilaisia tapoja järjestää Käsitellään seuraavaksi järjestämisalgoritmeja, jotka perustuvat muihin kuin vertailuun alkioiden oikean järjestyksen saamiseksi. Lisäksi
Algoritmit 1. Luento 3 Ti Timo Männikkö
Algoritmit 1 Luento 3 Ti 17.1.2017 Timo Männikkö Luento 3 Algoritmin analysointi Rekursio Lomituslajittelu Aikavaativuus Tietorakenteet Pino Algoritmit 1 Kevät 2017 Luento 3 Ti 17.1.2017 2/27 Algoritmien
Datatähti 2019 loppu
Datatähti 2019 loppu task type time limit memory limit A Summa standard 1.00 s 512 MB B Bittijono standard 1.00 s 512 MB C Auringonlasku standard 1.00 s 512 MB D Binääripuu standard 1.00 s 512 MB E Funktio
Johdanto: Jaetut näytöt Jaetun näytön asetukset ja näytöstä poistuminen Aktiivisen sovelluksen valitseminen
Kappale 14: Jaetut näytöt 14 Johdanto: Jaetut näytöt... 232 Jaetun näytön asetukset ja näytöstä poistuminen... 233 Aktiivisen sovelluksen valitseminen... 235 TI-89 / TI-92 Plus:ssä voit jakaa näytön ja
Algoritmit 1. Demot Timo Männikkö
Algoritmit 1 Demot 2 1.-2.2.2017 Timo Männikkö Tehtävä 1 (a) Ei-rekursiivinen algoritmi: laskesumma(t, n) sum = t[0]; for (i = 1; i < n; i++) sum = sum + t[i]; return sum; Silmukka suoritetaan n 1 kertaa
Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen:
Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen: S A S B Samaan jäsennyspuuhun päästään myös johdolla S AB Ab ab: S A S B Yhteen jäsennyspuuhun liittyy aina tasan yksi vasen
Tietorakenteet ja algoritmit - syksy 2015 1
Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 2 Tietorakenteet ja algoritmit Johdanto Ari Korhonen Tietorakenteet ja algoritmit - syksy 2015 1. JOHDANTO 1.1 Määritelmiä
Algoritmit 2. Luento 14 Ke Timo Männikkö
Algoritmit 2 Luento 14 Ke 3.5.2017 Timo Männikkö Luento 14 Ositus ja rekursio Rekursion toteutus Kertaus ja tenttivinkit Algoritmit 2 Kevät 2017 Luento 14 Ke 3.5.2017 2/30 Ositus Tehtävän esiintymä ositetaan
Dynaaminen ohjelmointi ja vaikutuskaaviot
Dynaaminen ohjelmointi ja vaikutuskaaviot. Taustaa 2. Vaikutuskaaviot ja superarvosolmut 3. Vaikutuskaavion ratkaiseminen 4. Vaikutuskaavio ja dynaaminen ohjelmointi: 5. Yhteenveto Esitelmän sisältö Optimointiopin
Ohjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Keskeneräinen luento 3: Listat (mm. SICP 22.2.3) Riku Saikkonen 31. 10. 2011 Sisältö 1 Linkitetyt listat 2 Linkitetyt listat (SICP 2.1.1, 2.2.1) funktionaalinen
Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti
Luku 6 Dynaaminen ohjelmointi Dynaamisessa ohjelmoinnissa on ideana jakaa ongelman ratkaisu pienempiin osaongelmiin, jotka voidaan ratkaista toisistaan riippumattomasti. Jokaisen osaongelman ratkaisu tallennetaan
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
Kysymys: Voidaanko graafi piirtää tasoon niin, että sen viivat eivät risteä muualla kuin pisteiden kohdalla?
7.7. Tasograafit Graafi voidaan piirtää mielivaltaisen monella tavalla. Graafin ominaisuudet voivat näkyä selkeästi jossain piirtämistavoissa, mutta ei toisessa. Eräs tärkeä graafiryhmä, pintagraafit,
TAMPEREEN TEKNILLINEN YLIOPISTO
TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja Tietokonetekniikan laitos TKT-3200 Tietokonetekniikka ASSEMBLER: QSORT 06.09.2005 Ryhmä 00 nimi1 email1 opnro1 nimi2 email2 opnro2 nimi3 email3 opnro3 1. TEHTÄVÄ
A274101 TIETORAKENTEET JA ALGORITMIT
A274101 TIETORAKENTEET JA ALGORITMIT ALGORITMIEN ANALYYSISTÄ 1.ratkaisu Laskentaaika hakkeri - optimoitu ALGORITMIANALYYSIÄ hyvä algoritmi hakkeri -optimoitu hyvä algoritmi Tehtävän koko Kuva mukailtu
Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.
2. MS-A4/A6 Matriisilaskenta 2. Nuutti Hyvönen, c Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto 5.9.25 Tarkastellaan esimerkkinä lineaarista yhtälöparia { 2x x 2 = x + x 2
Ohjelmointiharjoituksia Arduino-ympäristössä
Ohjelmointiharjoituksia Arduino-ympäristössä Yleistä Arduino-sovelluksen rakenne Syntaksi ja käytännöt Esimerkki ohjelman rakenteesta Muuttujat ja tietotyypit Tietotyypit Esimerkkejä tietotyypeistä Ehtolauseet
Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)
Alkuarvot ja tyyppimuunnokset (1/5) Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123; Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku,
815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 6 Vastaukset Harjoituksen aiheena on funktionaalinen ohjelmointi Scheme- ja Haskell-kielillä. Voit suorittaa ohjelmat osoitteessa https://ideone.com/
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
ImageRecognition toteutus
ImageRecognition toteutus Simo Korkolainen 27 kesäkuuta 2016 Projektin tarkoituksena on tehdä ohjelma, joka opettaa neuroverkon tunnistamaan kuvia backpropagation-algoritmin avulla Neuroverkon opetuksessa
Johdatus verkkoteoriaan luento Netspace
Johdatus verkkoteoriaan luento 3.4.18 Netspace Matriisioperaatio suunnatuissa verkoissa Taustoitusta verkkoteorian ulkopuolelta ennen kuljetusalgoritmia LP-ongelma yleisesti LP = linear programming =
Tekijä Pitkä matematiikka
K1 Tekijä Pitkä matematiikka 5 7..017 a) 1 1 + 1 = 4 + 1 = 3 = 3 4 4 4 4 4 4 b) 1 1 1 = 4 6 3 = 5 = 5 3 4 1 1 1 1 1 K a) Koska 3 = 9 < 10, niin 3 10 < 0. 3 10 = (3 10 ) = 10 3 b) Koska π 3,14, niin π
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
9.5. Turingin kone. Turingin koneen ohjeet. Turingin kone on järjestetty seitsikko
9.5. Turingin kone Turingin kone on järjestetty seitsikko TM = (S, I, Γ, O, B, s 0, H), missä S on tilojen joukko, I on syöttöaakkosto, Γ on nauha-aakkosto, I Γ, O on äärellinen ohjeiden joukko, O S Γ
Suorat ja tasot, L6. Suuntajana. Suora xy-tasossa. Suora xyzkoordinaatistossa. Taso xyzkoordinaatistossa. Tason koordinaattimuotoinen yhtälö.
Suorat ja tasot, L6 Suora xyz-koordinaatistossa Taso xyz-koordinaatistossa stä stä 1 Näillä kalvoilla käsittelemme kolmen laisia olioita. Suora xyz-avaruudessa. Taso xyz-avaruudessa. Emme nyt ryhdy pohtimaan,
Algoritmit 1. Luento 4 Ke Timo Männikkö
Algoritmit 1 Luento 4 Ke 18.1.2017 Timo Männikkö Luento 4 Tietorakenteet Pino Pinon toteutus Jono Jonon toteutus Lista Listaoperaatiot Algoritmit 1 Kevät 2017 Luento 4 Ke 18.1.2017 2/29 Pino Pino, stack,
TAMPEREEN TEKNILLINEN YLIOPISTO
TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja Tietokonetekniikan laitos TKT-3200 Tietokonetekniikka ASSEMBLER: QSORT 11.08.2010 Ryhmä 00 nimi1 email1 opnro1 nimi2 email2 opnro2 nimi3 email3 opnro3 1. TEHTÄVÄ
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
Harjoitus 7 -- Ratkaisut
Harjoitus 7 -- Ratkaisut 1 Solve osaa ratkaista polynomiyhtälöitä, ainakin astelukuun 4 asti. Erikoistapauksissa korkeammankin asteen yhtälöt ratkeavat. Clear a, b, c, d, e, x ; Solve a x 3 b x 2 c 0,
Tässä osassa ei käytetä laskinta. Selitä päätelmäsi lyhyesti tai perustele ratkaisusi laskulausekkeella, kuviolla tms.
OSA 1 Ratkaisuaika 30 min Pistemäärä 20 Tässä osassa ei käytetä laskinta. Selitä päätelmäsi lyhyesti tai perustele ratkaisusi laskulausekkeella, kuviolla tms. 1. Mikä on suurin kokonaisluku, joka toteuttaa
Pohjan ja leikkauksen tekeminen Casa Parrista
1 / 12 Digitaalisen arkkitehtuurin yksikkö Aalto-yliopisto 24.11.2015 Pohjan ja leikkauksen tekeminen Casa Parrista Talon sijoittaminen maastoon 2 / 12 1. File --> import --> valitse maastotiedosto (tai
Tekijä Pitkä matematiikka Suoran pisteitä ovat esimerkiksi ( 5, 2), ( 2,1), (1, 0), (4, 1) ja ( 11, 4).
Tekijä Pitkä matematiikka 4 9.12.2016 212 Suoran pisteitä ovat esimerkiksi ( 5, 2), ( 2,1), (1, 0), (4, 1) ja ( 11, 4). Vastaus esimerkiksi ( 5, 2), ( 2,1), (1, 0), (4, 1) ja ( 11, 4) 213 Merkitään pistettä
Johdatus L A TEXiin. 7. Taulukot ja kuvat. Dept. of Mathematical Sciences
Johdatus L A TEXiin 7. Taulukot ja kuvat Dept. of Mathematical Sciences Taulukot I Taulukkomaiset rakenteet tehdään ympäristöllä tabular Ympäristön argumentiksi annetaan sarakemäärittely, joka on kirjaimista
811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta
811312A Tietorakenteet ja algoritmit 2016-2017 Kertausta kurssin alkuosasta II Algoritmien analyysi: oikeellisuus Algoritmin täydellinen oikeellisuus = Algoritmi päättyy ja tuottaa määritellyn tuloksen
Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia
Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia Kukin alkio (viite) talletettuna solmuun (node) vastaa paikan käsitettä
Geogebra -koulutus. Ohjelmistojen pedagoginen hyödyntäminen
Geogebra -koulutus Ohjelmistojen pedagoginen hyödyntäminen Geogebra Ilmainen dynaaminen matematiikkaohjelmisto osoitteessa http://www.geogebra.org Geogebra-sovellusversion voi asentaa tietokoneilla ja
MAB3 - Harjoitustehtävien ratkaisut:
MAB3 - Harjoitustehtävien ratkaisut: 1 Funktio 1.1 Piirretään koordinaatistoakselit ja sijoitetaan pisteet: 1 1. a) Funktioiden nollakohdat löydetään etsimällä kuvaajien ja - akselin leikkauspisteitä.
2. Seuraavassa kuvassa on verkon solmujen topologinen järjestys: x t v q z u s y w r. Kuva 1: Tehtävän 2 solmut järjestettynä topologisesti.
Tietorakenteet, laskuharjoitus 11, ratkaisuja 1. Leveyssuuntaisen läpikäynnin voi toteuttaa rekursiivisesti käsittelemällä jokaisella rekursiivisella kutsulla kaikki tietyllä tasolla olevat solmut. Rekursiivinen
IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit
IDL - proseduurit 25. huhtikuuta 2017 Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,
Vanhoja koetehtäviä. Analyyttinen geometria 2016
Vanhoja koetehtäviä Analyyttinen geometria 016 1. Määritä luvun a arvo, kun piste (,3) on käyrällä a(3x + a) = (y - 1). Suora L kulkee pisteen (5,1) kautta ja on kohtisuorassa suoraa 6x + 7y - 19 = 0 vastaan.
ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014
18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,
811312A Tietorakenteet ja algoritmit, 2015-2016. VI Algoritmien suunnitteluparadigmoja
811312A Tietorakenteet ja algoritmit, 2015-2016 VI Algoritmien suunnitteluparadigmoja Sisältö 1. Hajota ja hallitse-menetelmä 2. Dynaaminen taulukointi 3. Ahneet algoritmit 4. Peruuttavat algoritmit 811312A
811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta
811312A Tietorakenteet ja algoritmit 2017-2018 Kertausta kurssin alkuosasta II Perustietorakenteet Pino, jono ja listat tunnettava Osattava soveltaa rakenteita algoritmeissa Osattava päätellä operaatioiden
Tasogeometriaa GeoGebran piirtoalue ja työvälineet
Tasogeometriaa GeoGebran piirtoalue ja työvälineet Näissä harjoituksissa työskennellään näkymässä Näkymät->Geometria PIIRRÄ (ja MITTAA) a) jana toinen jana, jonka pituus on 3 b) kulma toinen kulma, jonka
Oppimateriaali oppilaalle ja opettajalle : GeoGebra oppilaan työkaluna ylioppilaskirjoituksissa 2016 versio 0.8
Oppimateriaali oppilaalle ja opettajalle : GeoGebra oppilaan työkaluna ylioppilaskirjoituksissa 2016 versio 0.8 Piirtoalue ja algebraikkuna Piirtoalueelle piirretään työvälinepalkista löytyvillä työvälineillä
Olkoon S(n) kutsun merge-sort(a, p, q) tilavaativuus kun p q + 1 = n. Oletetaan merge toteutetuksi vakiotyötilassa (ei-triviaalia mutta mahdollista).
Esimerkki Lomitusjärjestäminen merge-sort(a, p, q): var k % paikallinen muuttuja, vakiotila 1. if p < q then 2. r := (p + q)/2 3. merge-sort(a, p, r) 4. merge-sort(a, r + 1, q) 5. merge(a, p, r, q) Olkoon
Demo 1: Simplex-menetelmä
MS-C2105 Optimoinnin perusteet Malliratkaisut 3 Ehtamo Demo 1: Simplex-menetelmä Muodosta lineaarisen tehtävän standardimuoto ja ratkaise tehtävä taulukkomuotoisella Simplex-algoritmilla. max 5x 1 + 4x
4. Varastossa on 24, 23, 17 ja 16 kg:n säkkejä. Miten voidaan toimittaa täsmälleen 100 kg:n tilaus avaamatta yhtään säkkiä?
Peruskoulun matematiikkakilpailu Loppukilpailu perjantaina 3.2.2012 OSA 1 Ratkaisuaika 30 min Pistemäärä 20 Tässä osassa ei käytetä laskinta. Kaikkiin tehtäviin laskuja, kuvia tai muita perusteluja näkyviin.
Luento 4 Aliohjelmien toteutus
Luento 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet: aliohjelma, proseduuri parametrit funktio parametrit,
Tietorakenteet ja algoritmit syksy Laskuharjoitus 1
Tietorakenteet ja algoritmit syksy 2012 Laskuharjoitus 1 1. Tietojenkäsittelijä voi ajatella logaritmia usein seuraavasti: a-kantainen logaritmi log a n kertoo, kuinka monta kertaa luku n pitää jakaa a:lla,
8. Morfologinen kuvanprosessointi 8.1. Perusteita
8. Morfologinen kuvanprosessointi 8.1. Perusteita Sana morfologia viittaa muotoon ja rakenteeseen eri tieteenaloilla. Kuvanprosessoinnissa se tarkoittaa matemaattista keinoa, jolla irrotetaan kuvasta kiinnostavia
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
Johdatus matematiikkaan - tarinaosasto Tero Kilpeläinen
Tero Kilpeläinen Syksy 2011 Mitä todistettavaa? Seuraavassa esimerkkejä lauseista, joiden todistukset eivät ole ilmeisiä. Aritmetiikan peruslause Jokainen luonnollinen luku voidaan esittää yksikäsitteisellä
Luento 5. Timo Savola. 28. huhtikuuta 2006
UNIX-käyttöjärjestelmä Luento 5 Timo Savola 28. huhtikuuta 2006 Osa I Shell-ohjelmointi Ehtolause Lausekkeet suoritetaan jos ehtolausekkeen paluuarvo on 0 if ehtolauseke then lauseke