1. 程式人生 > >java 圖片繞中心旋轉

java 圖片繞中心旋轉

public abstract void rotate(double theta,
double x,
double y)將當前的 Graphics2D Transform 與平移後的旋轉轉換連線。

以下作廢!!!!!!!!!

555555555555555555555

用rotate()旋轉圖片時發現旋轉中心是視窗左上角,但該種旋轉不美觀且不實用。看過書後,發現可以使用translate()函式解決該問題。

效果如下:

效果圖

程式碼如下:

    /**
     * imageX,imagesY   圖片位置
     * imageW,imageH    圖片大小
     * angel    旋轉角度
     * rotateX,rotateY  旋轉中心
     * 圖片旋轉360°後返回true
     */
protected boolean draw(Graphics g) { change(); Graphics2D g2 = (Graphics2D) g; g2.translate(rotateX, rotateY); g2.rotate(angle); g2.translate(-rotateX,-rotateY); g2.drawImage(image,imageX,imageY,imageW,imageH,null); if(angle == 0) return
true; else return false; }

思路是:先將座標原點挪到圖片中心,在旋轉圖片,然後再把座標原點移到視窗左上角(暫且稱其為(0,0)點吧),最後繪製圖片。
即A->B->C->D.
程式碼原理
看圖後會發現,圖片旋轉完後,座標是斜的,所以在新增到其它元件時,不要忘記將座標調正,調正包涵座標位置和傾斜角度。