先順時針旋轉30度,再利用兩種插值法分別實作。
以原點為中心,順時針轉30度 x'=x cosθ-y sinθ y'=x sinθ+y cosθ 反推,從新圖片找原圖的像素(逆時針轉30度) x=x^' cosθ+y'sinθ y=-x'sinθ+y'cosθ 為了以圖片中心旋轉,須找到圖片中心點 ox=width÷2 oy=height÷2 因此,先將新圖像素平移以方便計算,旋轉後再平移回原位 nx=x^'-ox ny=y^'-oy x=nx^' cosθ+ny^' sinθ+ox y=-nx^' sinθ+ny^' cosθ+oy 為了顯示所有旋轉後的像素點,必須放大旋轉後的圖片 新的圖片大小 nw=w cosθ+h sinθ nh=w sinθ+h cosθ 因為我們的圖片都是正方形,因此可以簡化成 "nedge"="edge"(sinθ+cosθ)
算放大後的圖片像素點位移 ox=-nedge cosθ-"nedge" sinθ+"width"÷2 oy=nedge sinθ-"nedge" cosθ+"height"÷2 最終帶回原式,旋轉後平移 x=nx^' cosθ+ny^' sinθ+ox y=-nx^' sinθ+ny^' cosθ+oy
Gamma