Seuraavat tehtävät tulevat usein vastaan, jos aikoo piirtää vaikka jonkin
käyrän tietokoneella:
1. Muunnos sovelluskoordinaateista ikkunan pikselikoordinaatteihin.
Pikselin paikka ikkunassa olkoon
xp = pikselin etäisyys vasemmasta reunasta (pikseleitä). xp >= 0
yp = pikselin etäisyys yläreunasta, jolloin siis yp-akseli osoittaa alaspäin.
yp >= 0. Pikselit oletetaan neliön muotoisiksi.
Sovelluskoordinaatisto on tavanomainen koulukoordinaatisto, missä y-akseli
osoittaa ylöspäin. Olkoon ikkunan vasen alakulma sovelluskoordinaateissa
(x0, y0) ja oikea yläkulma (x1, y1).
Ikkunan piirtoalueen leveys on w pikseliä ja korkeus h pikseliä. Annettava
muunnos sovelluskoordinaateista (x,y) pikselikoordinaateiksi (xp, yp):
xp = ax b,
yp = cx d.
Määrättävä a, b, c ja d.
2. Tietokoneen näytöllä on käytettävissä suorakulmainen alue, jonka leveys
on W pikseliä ja korkeus H pikseliä. Tähän alueeseen on asetettava
mahdollisimman suuri ikkuna, jonka piirtoalueen korkeuden suhde leveyteen on q.
Ikkunassa on kehykset. Yläkehyksen paksuus on a pikseliä ja sivu- ja alakehysten
paksuus on b pikseliä. Määrättävä ikkunan leveys w ja korkeus h
(kehykset mukaan luettuna).
Tietokonegrafiikkaa
1
83
Vastaukset
- pixy
Oma versioni tehtävien ratkaisusta:
1. x-pikselikoordinaatti saadaan verrannosta
px / w = (x - x0) / (x1 - x0), mistä
px = (w / (x1 - x0)) (x - x0), jolloin
a = w / (x1 - x0) ja b = -w*x0 / (x1 - x0).
y-pikselikoordinaatti saadaan verrannosta
py / h = (y1 - y) / (y1 - y0). mistä
py = h*(y1 - y) / (y1 - y0), jolloin
c = -h / (y1 - y0) ja d = h*y1 / (y1 - y0).
Jos pikselikoordinaatit pitää muuttaa kokonaisluvuiksi, niin termeihin b ja d
lisätään 0.5, jolloin voidaan käyttää pyöristystä katkaisemalla ((int)-cast).
2. Ikkunan sijoitukselle on kaksi vaihtehtoa:
2.1. Ikkuna täyttää alueen sivusuunnassa, jolloin ikkunan leveys w = alueen
leveys W. Silloin piirtoalueen leveys on W - 2b ja korkeus q*(W - 2b). Siitä
saadaan ikkunan korkeudeksi q*(W - 2b) a b
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
KUPSinpelaaja vangittu törkeästä rikoksesta
Tänään tuli uutinen että Kupsin sopimuspelaajs vangittu törkeästä rikoksesta epäiltynä. Kuka pelaaja kysressä ja mikä ri141412- 281285
Minun oma kaivattuni
Ei ole mikään ilkeä kiusaajatyyppi, vaan sivistynyt ja fiksu sekä ystävällinen ihminen, ja arvostan häntä suuresti. Raka631182Miksi ihmeessä nainen seurustelit kanssani joskus
Olin ruma silloin ja nykyisin vielä rumempi En voi kuin miettiä että miksi Olitko vain rikki edellisestä suhteesta ja ha111072Tervehdys!
Sä voit poistaa nää kaikki, mut mä kysyn silti A:lta sen kokemuksia sun käytöksestä eron jälkeen. Btw, miks haluut sabot651026Persut nimittivät kummeli-hahmon valtiosihteeriksi!
Persujen riveistä löytyi taas uusi törkyturpa valtiosihteeriksi! Jutun perusteella järjenjuoksu on kuin sketsihahmolla.271015Onko ministeri Juuso epäkelpo ministerin tehtäviensä hoitamiseen?
Eikö hänellä ole kompetenttia hoitaa sosiaali- ja terveysministetin toimialalle kuuluvia ministerin tehtäviä?91003Elia tulee vielä
Johannes Kastaja oli Elia, mutta Jeesus sanoi, että Elia tulee vielä. Malakian kirjan profetia Eliasta toteutuu kokonaan30989Sakarjan kirjan 6. luku
Jolla korva on, se kuulkoon. Sain profetian 22.4.2023. Sen sisältö oli seuraava: Suomeen tulee nälänhätä niin, että se6981Kaupungin valtuuston yleisötilaisuus
YouTubessa katsojia 76 Buahahaha buahahaha buahahaha buahahaha buahahaha buahahaha1980