當前位置:首頁 » 編程語言 » java旋轉

java旋轉

發布時間: 2025-02-14 00:22:49

java實現圖片旋轉90度的問題

類Graphics2D的方法rotate(double theta, double x,
double y)可以用來旋轉圖片

② java將坐標軸向右旋轉90度

一般用Graphic2D 來實現

g2d 里有rotate、translate、scale方法

代碼片段如下:

	@Override
publicvoidpaintComponent(Graphicsg){
Graphics2Dg2=(Graphics2D)g;
g2.rotate(Math.toRadians(45));
g2.drawImage(image,0,0,this.getWidth(),this.getHeight(),null);
}

③ java游戲240x320旋轉之後如何修改按鍵值

下載輔助軟體。
1、首先你需要下載一個軟體ChMobileKey,用來修改java240X320旋轉之後的鍵位,解壓後打開ChMobileKey.exe,右邊的9宮格子就是我們要修改的地方,這時候點「預設設置」。
2、數字1-16對應的就是手機鍵盤上的按鍵,「原始鍵值」對應的數字就是我們等等需要修改的,然後右邊9宮格對應觸摸按鍵處在屏幕的位置,裡面的數字就是我們需要替換的數字。
3、然後點」運行轉換「,選定要轉換的JAVA游戲,就能生成改好觸摸鍵的JAVA游戲。

④ java圖像旋轉失去質量問題,怎麼解決

使用的幾個類

  • Graphics2d

  • AffineTransform

  • BufferedImage

  • 1. Graphics2d 方式

    利用Graphics2d的rotate方法來實現圖片旋轉,奇怪的是一直不生效,實現代碼如下

  • BufferedImage bufferedImage = ImageUtil.getImageByPath("bg.png");

  • Graphics2D g2d = bufferedImage.createGraphics();

  • g2d.rotate(Math.toRadians(90), bufferedImage.getWidth() >> 1, bufferedImage.getHeight() >> 1);

  • g2d.dispose();1234

  • 2.AffineTransform方式

  • BufferedImage bufferedImage = ImageUtil.getImageByPath("bg.png");


  • AffineTransform tx = new AffineTransform();

  • tx.rotate(0.5, bufferedImage.getWidth() / 2, bufferedImage.getHeight() / 2);


  • AffineTransformOp op = new AffineTransformOp(tx,

  • AffineTransformOp.TYPE_BILINEAR);

  • bufferedImage = op.filter(bufferedImage, null);

⑤ java俄羅斯方塊旋轉演算法,求解

可以給每一個小方塊設置為一個坐標,變為一個三階行列式,3*3矩陣,轉變為二元數組旋轉。觀察一下左旋:

11 12 13 31 21 11

21 22 23 →→ 32 22 12

31 32 33 33 23 13

坐標變換如下:(1,1)變為(1,3),(1,2)變為(2,3),(1,3)變為(3,3)

(2,1)變為(1,2),(2,2)變為(2,2),(2,3)變為(3,2)

(3,1)變為(1,1),(3,2)變為(2,1),(3,3)變為(3,1)

規律就是(i,j)變為(j,3-i+1):

如果是2*2的方格,就可以變為二階行列式,也就是2*2的二元數組,這里給出3*3九宮格改變的示意,我的代碼如下:


importjava.util.Random;

publicclassT{

publicstaticvoidmain(String[]args){

int[][]a=newint[3][3];
System.out.println("");
Randomr=newRandom();
for(inti=0;i<3;i++){
for(intj=0;j<3;j++){
a[i][j]=r.nextInt(10);
}
}
System.out.println("thearrayisshownasfollows:");
for(inti=0;i<3;i++){
for(intj=0;j<3;j++){
System.out.print(a[i][j]+"");
}
System.out.println();
}
System.out.println("左轉九十度");
for(inti=0;i<a.length;i++){
for(intj=0;j<a[i].length;j++){
System.out.print(a[a[i].length-1-j][i]+"");
}
System.out.println();
}
}
}

⑥ java 怎麼讓一個圖形繞一個點旋轉360度

  1. importjava.awt.Canvas;
  2. importjava.awt.Graphics;
  3. importjava.awt.Graphics2D;
  4. importjava.awt.RenderingHints;
  5. importjava.awt.image.BufferedImage;
  6. /**
  7. *@authorZhengYesheng
  8. */
  9. {
  10. =-1997487731464495923L;
  11. BufferedImageimg;
  12. BufferedImagerotatedImg;
  13. intdegress=0;
  14. publicRotateImageCanvas(BufferedImageimg)
  15. {
  16. super();
  17. this.img=img;
  18. newThread(this).start();
  19. }
  20. @Override
  21. publicvoidrun()
  22. {
  23. while(true)
  24. {
  25. //A,與B的代碼配合決定旋轉的速度
  26. degress+=1;
  27. degress%=360;
  28. repaint();
  29. try
  30. {
  31. if(degress==0)
  32. {
  33. //繞一周後等待的時間在這里設置
  34. Thread.sleep(3*1000);
  35. }
  36. else
  37. {
  38. //考慮到視覺平滑,這里不應大約40。
  39. Thread.sleep(30);
  40. }
  41. }
  42. catch(InterruptedExceptione)
  43. {
  44. //TODOAuto-generatedcatchblock
  45. e.printStackTrace();
  46. }
  47. }
  48. }
  49. @Override
  50. publicvoidpaint(Graphicsgraphics)
  51. {
  52. super.paint(graphics);
  53. //獲取旋轉指定角度後的圖片。為了避免累計誤差,這里是用原始圖像旋轉的
  54. rotatedImg=rotateImage(img,degress);
  55. //繪制旋轉後的圖片
  56. graphics.drawImage(rotatedImg,0,0,this);
  57. }
  58. /**
  59. *旋轉圖片為指定角度。
  60. *注意:1、這個方法實現了圖像的基於中點的旋轉,要想繞指定點,需要配合Matrix類
  61. *2、為避免圖像被裁切,結果圖片的尺寸也需要動態計算
  62. *3、現在旋轉後有黑色背景,如果不需要這個效果,需要設置結果圖片的Alpha模式
  63. *
  64. *@parambufferedimage
  65. *目標圖像
  66. *@paramdegree
  67. *旋轉角度
  68. *@return
  69. */
  70. (BufferedImagebufferedimage,intdegree)
  71. {
  72. intw=bufferedimage.getWidth();
  73. inth=bufferedimage.getHeight();
  74. inttype=bufferedimage.getColorModel().getTransparency();
  75. BufferedImageimg;
  76. Graphics2Dgraphics2d;
  77. (graphics2d=(img=newBufferedImage(w,h,type)).createGraphics())
  78. .setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BILINEAR);
  79. graphics2d.rotate(Math.toRadians(degree),w/2,h/2);
  80. graphics2d.drawImage(bufferedimage,0,0,null);
  81. graphics2d.dispose();
  82. returnimg;
  83. }
  84. }
熱點內容
python列印對象 發布:2025-02-14 02:51:20 瀏覽:572
QRM演算法 發布:2025-02-14 02:45:19 瀏覽:265
c語言列印結構體 發布:2025-02-14 02:42:28 瀏覽:140
編譯技術實驗一 發布:2025-02-14 02:28:24 瀏覽:647
編程手機入門 發布:2025-02-14 02:27:40 瀏覽:733
區域網視頻android 發布:2025-02-14 02:23:56 瀏覽:423
麒麟系統如何安裝安卓程序 發布:2025-02-14 02:07:21 瀏覽:399
ipad訪問電腦硬碟嗎 發布:2025-02-14 02:02:53 瀏覽:901
蘋果筆記本電腦不能連接伺服器 發布:2025-02-14 01:43:02 瀏覽:394
查看linux的shell 發布:2025-02-14 01:38:42 瀏覽:989