Pikaista apua tarvitaan
Pikaista apua tarvitaan
klo 21:18 | 25.11.2010
Eli tälläinen asia, kuin kuvion koon pienentäminen/suurentaminen koordinaatistossa tietyssä suhteessa + uusien koordinaattien määrittäminen. Miten se tapahtuu? Asiaa olen yrittänyt hakukoneella etsiä, mutta ratkaisua en ole löytänyt.
Esim. Jos koordinaatiston pisteet ovat (1,-2), (5,2), (1,6) ja (-3,2), niin miten saan kutistettua sitä (joka puolelta tasaisesti), jotta pinta-ala olisi esim. 2/3 + kuvion koordinaatien määrittäminen.
Sivut
Kaikkien geometristen ja koordinaatisto-ongelmien sääntö nro 1: Piirrä kuva tilanteesta oikeissa suhteissa.
Se on tehty, mutta vaikka olen pääni puhki miettinyt, niin en keksi mitä tehdä.
Tee niistä murtolukuja.
Ok, käsillä on siis nelikulmio, jonka kärkipisteet ovat nuo mainitut, eikö? Sen pinta-alan osaat varmaan laskea. Olkoon se A. Kuviota pitäisi skaalata niin, että pinta-alaksi tulee 2/3. Tavoitepinta-alan suhde alkuperäiseen on (2/3) / A = 2A/3. Missä suhteessa pituuksien pitää muuttua, jotta tuo tavoitepinta-ala saavutetaan, kun tiedetään, että pinta-ala kasvaa pituuden neliöön? Kun selvität tuon, saat muodostettua 2/3-pinta-alaisen kuvion skaalaamalla jokaisen kulmapisteen vektorin (l. jokaisen pisteen kummankin koordinaatin) saadulla luvulla.
Yksinkertainen esimerkki: jos pitää kutistaa pinta-ala neljännekseen alkuperäisestä, eli pinta-alojen suhde on 1/4, pituutta pitää kutistaa puoleen, eli pituuksien suhde on 1/2. Tällöin uusi kuvio saadaan muodostettua skaalaamalla jokainen vektori 0,5:llä.
We're all mad here.
Tietokoneen 3D-grafiikassa homma hoidetaan perinteisesti matriisilaskennalla. Voi tuntua aluksi vähän hämärältä jutulta, mutta kannattaa tutustua ensin niin homma alkaa avautua ja osoittautuu lopulta todella nerokkaaksi jutuksi. Samalla vippaskontilla voi hoitaa helposti myös pyörittämisen ja muut perusjutut.
Tämä pienentäminen ja suurentaminen on lineaarinen transformaatio. Niissä käy niin , että tuota transformaatiota edustavan matriisin determinantin arvo on se jolla pinta-ala (tässä 2-ulotteisessa tapauksessasi, pätee yleisesti n-ulotteisen avaruuden "tilavuuksiin") tulee kerrotuksi.
Nyt sinulla on näin yksinkertainen transformaatio:
S = k R, missä k on joku positiivinen reaaliluku. Matriisimuodossa tämä on:
s1 k 0 r1
= *
s2 0 k r2
missä s1 ja s2 ovat S:n komponentit ja r1 ja r2 R:n komponentit ja tuossa on olevinaan seuraavaa: pystyvektori (S)= transformaation matriisi kertaa pystyvektori (R), en osaa kirjoitella tällä koneella kaarisulkuja y.m.
Tuon transformaation matriisin determinantin arvo on k^2 ja tällä luvulla tulevat siis pinta-alat kerrottua tuossa transformaatiossa, vektorit tulevat kerrotuksi luvulla k.
Jos haluat, että k^2 = 2/3, on k = sqrt(2/3). Sinulla oli nuo neljä vektoria, joiden komponentit olivat (1,-2) jne. Kerrot ne luvulla sqrt(2/3) ja saat uudet vektorit. Kuvion pinta-ala on sitten 2/3 kertaa alkuperäinen.
Tavallaan tähän kysymykseesi jo vastattiin, mutta tässä nyt vähän "eksplisiittisemmin".
Ohman
En tiedä,miksi tuo kone sotkee tuon matriisiesityksen, yritin kaksi kertaa ja molemmilla kerroilla se näkyi kirjoituksessani oikein mutta esikatselussa ja lähetettynä litistyy kummalliseen muotoon. Saaneeko tuosta selvää?
Ohman
Sun pitää ensiksi kaivaa esiin kuvion keskipiste.laske kaikki x koordinaatit yhteen ja jaa 4:llä.Tee sama y-koodinaateille.
Nyt sinulla on origo keskellä kuviota kun vähennät keskipisteen (a,b) kaikista pisteistä.Sitten vain skaalaat sitä kertomalla pisteet (x,y) = skaalakerroin*(x,y)
Matriiseilla ajateltuna se on translaatio kuvan keskustaan, sitten skaalaus.
Niin että pisteiden etäisyys neliön keskipisteestä pienenee 1.22 osaan..? Juu niin se on.
x-keskipiste: (5+1+1-3) / 4 = 1
y-keskipiste: (6-2+2+2) / 4 = 2
Keskipiste on (1, 2)
Vähennetään koordinaateista keskipiste saadaan (4,0) (-4,0) (0,4) (0,-4)
Tosta onkin sitten tosi helppo skaalata , 4:set kerrotaan 2/3 :lla.
(8/3, 0) (-8/3, 0) (0, 8/3) (0, -8/3)
Sitten pitää lisätä noihin keskipiste(1,2) niin saadaan siirrettyä takaisin kuvio paikoilleen...
Ei kannata hirveästi vaivata päätään matriiseilla tässä tehtävässä.
Ettäs tiedätte.
Ei kun skaalakerroin on neliöjuuri(2/3)
Noinhan se on .En lukenut tehtävää tarkasti.
Miksi siinä joku keskipiste pitäisi kaivaa esiin? Kertomaan vaan.
Kyllä se vähän helpottaa.
Kyllä kuvioita voi pienentää tieyssä kaavassa, minkä pisteen suhteen tahansa. Ei kaikilla kuvioilla edes ole keskipistettä. Matrriseilla kaikki menee helposti, mutta ei sellaiselle, joka kenties kuulee sanan ensi kertaa.
Sivut