@beachmeat: natürlich bin ich ein freak, würde ich mich sonst mit flash beschäftigen?
sooooo schwer ist das alles gar nicht:
ich versuchs mal zu erklären (mit händen und füssen ist das einfacher)
das eigenliche problem stellt ja nur die "entzerrung" da.
da man in flash (und fast allen programmen die ich so kenne) nicht an einem bogen entlang scalieren kann, muss der ausschnitt in streifen geschnitten werden, die einzeln skaliert werden.
je mehr streifen, desto besser die quallität und je langsamer wird das ganze.
nun gut: nehmen wir eine ansicht von 320px breite und 16 streifen macht pro streifen 20px.
PHP-Code:
*
+--+--+--+--+--+--+--+--*--+--+--+--+--+--+--+--+
!1 ! ! ! ! ! ! ! * ! ! ! ! ! ! !16!
===================================================
! ! ! ! ! ! ! ! * ! ! ! ! ! ! ! !
+--+--+--+--+--+--+--+--*--+--+--+--+--+--+--+--+
von der mitte her müssen nun die streifen mit eine cosinus kurve gestreckt werden (oder besser einem ausschnitt der kurve)
d.h. in der mitte (*) wird nicht gestreckt und am rand (1, 16) am meisten
noch dazu wird die obere und untere hälfte (=====) mit dem gleichen faktor gestreckt
- jetzt nur noch bei einer drehung das pano-bild durch die gestreckten teile schieben und fertig ist die entzerrung
hoch und runter kneif ich mir jetzt erstmal (das ist ARGES geraffel)
ach ja, im prinzip könnte man die streifen mit der selben kurve zur mitte hin breiter werden lassen um ein besseres ergebniss zu bekommen (bringt aber nicht soooo viel)
ich hoffe es war halbwegs verständlich
sincerely <olli/>