2009年10月26日 星期一

HW2

時間又超過啦…

上課所講的方法其實並沒有很懂…

所以作業上網做了很多功課,也用了老師講的C++Builder6書籍來參考。

課程部分重點在於影像旋轉,下面是我遇到的問題

一開始動手完成最初版本是會消除到邊邊角角,
後來發現原來是中心點的問題(參考右圖)

但是我對部落格上的程式講解沒辦法有效的轉成我想要的程式碼,所以我就另外找了程式組合起來。

再來就是數學運算的部分,剛完成的時候我在變數設置的時候就把角度的部分寫死。

後來由於我想要可以自己輸入角度,所以就把角度換弧度的地方做更動變成(2*3.1416*angle)/360,如此就可以自訂angle

因為Edit1內的Text內容是Ansistring型態,我以為做(int)這樣簡單的強制轉換就可以改變…沒想到不行,而是必須使用.ToInt(),在BCB中應該很多物件內容屬於Ansistring,不過轉換方法很容易找到,沒有花到太多時間。

原本想直接釋放記憶體就可以再做一次旋轉,不過釋放記憶體後卻不能再做旋轉(會出錯)
使用Delete,不知道哪邊出了問題,所以現在也只能再重新開才能再次旋轉。

最後一個問題是,目前圖片檔案必須符合Image設定大小或是Image改成跟圖一樣,否則旋轉後會有黑色部分出現或是截到圖。
(Stretch設true沒用,可能是因為只是將圖縮放至預設大小,而旋轉是用Image設定做運算?)
↑問題已解決,將Autosize調整為true,如圖


需要手動…較麻煩,但是可以不限制圖的長寬,也不會有黑色部分出現。


如果有人願意指導一下,或是旋轉有問題可以來信給我(我不一定全盤了解…Sorry)。

下面是旋轉135度和150度的情形。
 

沒有留言:

張貼留言