当前位置:首页 » 编程语言 » 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. }
热点内容
反编译在编译 发布:2025-02-14 02:55:36 浏览:417
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