我正在向我的2D繪圖程序添加「鼠標旋轉」。通過基本計算從原始鼠標點擊到鼠標當前位置的旋轉角度,我已經掌握了所有代碼的工作原理。2D圖像旋轉,幾個問題
我還繪製了一個透明的矩形,它可以旋轉,而不是實際上在每個鼠標移動事件上旋轉圖像。
現在,我的問題是這個矩形的繪製。我從圖像的x/y位置繪製矩形,其寬度/高度就是圖像報告的內容。
然而,後旋轉矩形圖像,它的新高度和寬度要大得多,因爲這兩個截圖應該有助於澄清:During rotation,並after rotating then rotating again - 小「處理」顯示在圖片X/Y /寬度/高度延伸到
在第二個屏幕截圖中,由於旋轉,圖像被填充,帶有空格(很難用文本描述!)。例如。 200x100的圖像在旋轉後最終可能會達到150x150(大約),這在第二次調整大小時看起來有點奇怪。
有沒有人有一個想法如何解決這個問題?
嗨,謝謝,我在想這就是做這件事的方法。我保留原始圖像,並基於所有縮放/旋轉。這導致了另一個問題...我也有縮放代碼,但不知道如何將它與旋轉代碼結合起來。每個Image類將保持實例旋轉/縮放變量,但是我應該先旋轉還是重新縮放? – 2010-01-26 01:00:59
另一個問題是我基本上使用wxWidgets的圖像旋轉代碼 - 我的圖像角落的「重新調整手柄」是從GetWidth/Height返回的值繪製的。現在我應該在旋轉後跟蹤(輪廓)矩形的x/y /寬度/高度,並使用這些值來確定手柄的位置? – 2010-01-26 01:04:26
無論您是先旋轉還是縮放,縮放是否均勻以及縮放和旋轉的中心是否相同,都無關緊要。但是,如果以不同的比例拉伸X和Y,或者如果縮放的起點與旋轉不同,則順序很重要 – comingstorm 2010-01-26 07:52:14