2009年12月17日 星期四

HW2















原圖


















旋轉140度40度
本來一值沒辦法把圖讀到自己想要的位置
再看了老師的範例後
但是必須要計算轉完的大小(i,j)
再剪掉對角線的長度一半
這樣就是相對中心點的位置
iNewJ = j - iNewOriginX;
iNewI = i - iNewOriginY;
再套旋轉公式
iOldJ = iNewI * dCosAngle - iNewJ * dSinAngle;
iOldI = iNewI * dSinAngle + iNewJ * dCosAngle;
也就是 x=x*cos-y*sin
y=x*sin-y*cos
再加上舊邊長的一半
iOldJ = iOldJ + iOldOriginY;
iOldI = iOldI + iOldOriginX;
這樣就會剛好在框內
---------------------------- 1/19(補)

翻90度 270度 180度 都還好
翻30度 圖....要怎麼弄整個變大嗎?
在看過老師程式碼前面 , 一開始根本沒有頭緒
只知道有旋轉公式
想法是












定好右下角的點 旋轉 在計算 各點的位置
我把右下角點定為(0.0) 在另外宣告一個新的陣列
在套旋轉公式

(轉至維基百科)
後來又嫌太麻煩 又定"左上點"為原點 就不用換矩陣
可是實做出來圖會被切掉= = ,
中間也忘記加上#include
一直無法debug
後來是參考同學和老師的程式碼 才能正確的落在image2裡
最上頭是我參考老師的算法 才寫出來的
至於老師說得圖片品質變差
因為程式碼已不在了= =
所以沒辦法解答 真的 很抱歉...

1 則留言:

  1. 執行結果的影像品質變差代表你的程式有錯!

    回覆刪除