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
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.
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.
Ööh?
En kyllä saa tuosta mitään tolkkua?? :O
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?
En huomannut mainintaa "esim.". Yllä oleva pätee juurikin vain 90 asteen käännöksiin.
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.
Niinpä! Kyllä nyt tuollasen osaa kukavaan tehdä!
Tosin taisinkin saada tehtyä tuon mitä itse hainkin. Kiitos kumminkin.
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
Aihe on jo aika vanha, joten et voi enää vastata siihen.