當前位置:編程學習大全網 - 編程語言 - java如何讓壹個形狀圍繞壹個點旋轉360度

java如何讓壹個形狀圍繞壹個點旋轉360度

進口?Java . awt . canvas;進口?Java . awt . graphics;進口?Java . awt . graphics 2d;進口?Java . awt . rendering hints;進口?Java . awt . image . buffered image;?/**?*?@作者?正業生?*/公共?班級?RotateImageCanvas?延伸?畫布?器物?Runnable{private?靜電?決賽?龍?serialVersionUID?=?-1997487731464495923 l;?BufferedImage?imgBufferedImage?rotatedImg?int?輩分?=?0;?公?RotateImageCanvas(buffered image?img){ super();this.img?=?img新的?線程(這個)。start();}?@Overridepublic?作廢?run(){while?(真){//A,配合B的代碼確定轉速降級?+=?1;輩分?%=?360;repaint();試試{如果?(輩分?==?0){// Set Thread.sleep(3?*?1000);}else{//考慮到視覺的流暢度,這裏應該不是40左右。thread . sleep(30);} }抓?(中斷異常?e){//?托多?自動生成?接住?blocke . printstacktrace();}}}?@Overridepublic?作廢?油漆(圖形?graphics){super.paint(圖形);//獲取旋轉了指定角度的圖像。為了避免累積誤差,這裏是原圖像旋轉的rotatedImg?=?rotateImage(img,輩分);//繪制旋轉後的圖片graphics.drawImage(rotatedImg,?0,?0,?這個);}?/**?*?將圖片旋轉到指定的角度。?*?註:1。該方法實現了基於中點的圖像旋轉。如果要繞指定點旋轉,需要配合Matrix類。*2.為了避免圖像被裁剪,結果圖像的大小也需要動態計算?*3.現在有壹個旋轉後的黑色背景。如果不需要這種效果,需要設置結果圖的Alpha模式?**?@param?bufferedimage?*目標圖像?*?@param?學位?*旋轉角度?*?@回歸?*/私人?BufferedImage?rotateImage(BufferedImage?bufferedimage,?int?度){int?w?=?buffered image . getwidth();int?h?=?buffered image . get height();int?類型?=?bufferedimage.getColorModel()。get transparency();BufferedImage?imgGraphics2D?graphics2d(graphics2d?=?(img?=?新的?BufferedImage(w,h,?類型))。createGraphics())。setRenderingHint(rendering hints。關鍵_插值,?呈現提示。值_插值_雙線性);graphics 2d . rotate(math . tora dians(degree),?w?/?2,?h?/?2);graphics 2d . draw image(buffered image,?0,?0,?null);graphics 2d . dispose();回歸?img}}
  • 上一篇:寄存器編程
  • 下一篇:變頻器,步進,伺服有什麽區別?如何選擇?
  • copyright 2024編程學習大全網