Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Kuvan rotaatio

Sivun loppuun

kayttaja-3842 [19.10.2009 11:34:25]

#

Tervehdys kaikille,

Elikkäs olen tässä koittanut pähkäillä, että miten kuvan saisi käännettyä pikseli pikseliltä esim. 90 astetta

Eli kuvien tapainen tulos pitäisi saada tulokseksi

Ei käännetty

90 astetta käännettynä

Käsittääkseni kaava on oikea:

x = ( cos( 90 ) * x ) + ( -sin(90) * y )
y = ( sin( 90 ) * x ) + ( cos(90) * y )

Eli siis onko toi x,y kuvan keskipiste vai jokaisen pikselin oma koordinaatisto?

Jos x ja y tarkotetaan kuvan keskipistetää nii miten siitä saa laskettuu jokaisen pikselin uusi sijainti?


Edit1:

Nytten sain kehiteltyy tälläisen

px = pikselinX
py = pikselinY
kkx = kuvankeskusx
kky = kuvankeskusy

x = ( cos( 90 ) * ( px - kkx ) ) - ( sin( 90 ) * ( py - kky ) + kkx

y = ( sin( 90 ) * ( px - kkx ) ) + ( cos( 90 ) * ( py - kky ) + kky


...mutta ei näy toimivan.

tsuriga [19.10.2009 12:26:34]

#

Rotaatio oikealle: (x2, y2) = (max-x - y1, x1)
Rotaatio vasemmalle: (x2, y2) = (y1, max-y - x1)

EDIT: Päivitetty kaavat uusille koordinaateille selkeämmin näkyviin.
EDIT2: Poistettu epäoleelllisuuksia.

kayttaja-3842 [19.10.2009 12:34:27]

#

Ööh?

En kyllä saa tuosta mitään tolkkua?? :O

kayttaja-3842 [19.10.2009 13:40:17]

#

Mitäs x1, y1 ja x2, y2 sekä x ovat?

Eli minkä coordinaatteja ne ovat?

...ja eihän tuossa oteta huomioon kääntökulmaa? Jos käännetäänki 12astetta mitäs sitten?

tsuriga [19.10.2009 13:59:06]

#

En huomannut mainintaa "esim.". Yllä oleva pätee juurikin vain 90 asteen käännöksiin.

Gaxx [19.10.2009 14:00:29]

#

x1 ja y1 ovat pikselin koordinaatit ennen pyöritystä. x2 ja y2 ovat pikselin koordinaatit pyörityksen jälkeen. x näyttää hämäävästi koordinaatilta; olisi havainnollisempaa kirjoittaa max_x ja max_y. Ne ovat kuvan leveys ja korkeus.

kayttaja-3842 [19.10.2009 14:01:07]

#

Niinpä! Kyllä nyt tuollasen osaa kukavaan tehdä!

Tosin taisinkin saada tehtyä tuon mitä itse hainkin. Kiitos kumminkin.

User137 [24.10.2009 12:57:56]

#

Edit: Ups tsuriga jo tämän kertokin >.<

Jos tarkotuksena on kääntää vain 90 astetta eikä välimuotoja niin riittää kun vaihtaa vähän koordinaatteja.

x1,y1: alkup. pikselin koordinaatit
x2,y2: koordinaatit kun 90 astetta käännettynä
maxX,maxY: kuvan leveys ja korkeus-1 (jos kuva on 10 pikseliä leveä niin maxX=9)

x2 = y1
y2 = maxX-x1

tai toiseen suuntaan:

x2 = maxY-y1
y2 = x1


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta