這次作業是做旋轉,之前在多媒體概論的時候有自己做過90度跟180度的旋轉。
所以自以為的這次的也應該不會太難.....但是在實做的時候發現有很多的東西要考慮。
首先是旋轉的角度,怎麼樣在旋轉過後讓圖片完整呈現出來。
再來是第二個陣列的容納量可否容納的下旋轉過後的長跟寬。這都是必須要去考慮的~"~
實際打了程式試驗完以後,卻發現圖片是旋轉了但是有被剪掉的和重複到的地方。
問題:
圖片重複的地方我猜測是演算法的錯誤,因為我在裡面有用到abs函數,所以數值有可能重複。
而被cut掉的地方我想用圖片的位移不知道能不能解決.....
待續@_@~
經過幾次的測試....它終於可以正常旋轉了....
在程式碼方面,跟上一個圖案的差異性滿大的。
首先,因為之前是拿第一個作業的程式碼下去改寫的,所以一直陷入去對RGB陣列的元素做運算的迴圈。後來才想到,其實好像不用,只要把圖片的點旋轉就好,不需要用到RGB。
再來是使用cos sin函數 發現其實只要直接使用include裡面的math就可以使用cos跟sin這兩個函數了= = 不用自己在那裏亂算~"~
因為我是直接使用Image1->Canvas->Pixels[j][i]=Image2->Canvas->Pixels[j][i] 所以圖片在旋轉後多出原始圖片長寬的部分就被剪掉了@_@~這方面還沒做改進。
剩下的就是數學的公式了~旋轉的角度以及旋轉後的位置都是要考慮的因素~不然圖片會處理完後會亂跑= =
還有一個問題就是.....轉完以後顏色會稍微失針@@~~這我就不知道怎麼解決了~"~
沒有留言:
張貼留言