Tag: 旋转

Java – 图像旋转

我正在尝试旋转图像。 我正在使用这个Java代码: BufferedImage oldImage = ImageIO.read(new FileInputStream(“C:\\workspace\\test\\src\\10.JPG”)); BufferedImage newImage = new BufferedImage(oldImage.getHeight(), oldImage.getWidth(), oldImage.getType()); Graphics2D graphics = (Graphics2D) newImage.getGraphics(); graphics.rotate(Math.toRadians(90), newImage.getWidth() / 2, newImage.getHeight() / 2); graphics.drawImage(oldImage, 0, 0, oldImage.getWidth(), oldImage.getHeight(), null); ImageIO.write(newImage, “JPG”, new FileOutputStream(“C:\\workspace\\test\\src\\10_.JPG”)); 但我看到奇怪的结果: 资源: 结果: **结果图片:** http://s14.postimage.org/cjut935ip/image.jpg 你能帮帮我解决这个问题吗?

如何在Java中旋转图形

我在JPanel绘制了一些图形,如圆形,矩形等。 但我想绘制一些特定程度旋转的图形,如旋转的椭圆。 我该怎么办?

翻转旋转和图像

我正在编写一个Java平台游戏,我正在手动编写播放器动画。 我分别为每个肢体制作动画,改变位置和旋转。 当玩家面向右侧时,此function正常,但当玩家面向左侧时,我不知道如何处理旋转以使玩家向左转时看起来相同。 每个身体部位的位置都是相对于玩家的x和y值存储的,所以我真的需要一种方法来水平翻转旋转。 我知道我并没有很好地解释这一点,但如果有人理解我想说的并且可以提供帮助,我会非常感激。 先谢谢你。 🙂

按指定的角度在java中旋转图像

这是在给定坐标处绘制形状的函数: public void drawTank(int x,int y){ int h = 50; int w = 50; graphic.setColor(Color.darkGray); graphic.drawRect(x, y, h, w); graphic.fillRect(x, y, h, w); graphic.setColor(Color.GRAY); graphic.drawRect(x+50, y+20, 35, 10); graphic.fillRect(x+50, y+20, 35, 10); } 我想在上面的函数中添加一个名为’angle’的变量,这样图像也会旋转指定的角度(drawTank(int x,int y,int angle))。 更新了示例 我试图做的是我初始化Graphics2D并分别更改了我的代码: g2D.setColor(Color.darkGray); g2D.drawRect(x, y, h, w); g2D.fillRect(x, y, h, w); g2D.setColor(Color.red); g2D.drawRect(x+50, y+20, 35, 10); g2D.fillRect(x+50, y+20, […]

Java – 旋转数组

因此,目标是将arrays中的元素旋转一次。 举个例子; 如果a==2 ,则array = {0,1,2,3,4}将变为array = {3,4,0,1,2} 这就是我所拥有的: for (int x = 0; x <= array.length-1; x++){ array[x+a] = array[x]; } 但是,这不能解释何时[x+a]大于数组的长度。 我读到我应该存储那些在不同数组中更大的数据但是看作是变量的我不确定这是最好的解决方案。 提前致谢。

Java旋转非方形JPanel组件

我试图旋转填充文本标签的GridLayout来模拟由于操作系统限制而导致的纵向视图。 它们所在的JPanel不是方形的,所以当旋转90度时,标签会根据JPanel的尺寸切断。 是否可以根据旋转调整布局大小以适应JPanel? 对此研究显示了许多旋转选项,但仅适用于方形JPanels。 为了进一步解释我的问题:当我旋转内部绘制的标签时,它们保持格式化为正常的x,y,我希望它格式化布局以适应90度旋转的x,y(所以基本上y和x都被翻转)。 目前我的网格的一部分在旋转后被切断。 此外,最终显示应适合当前JPnel中填写的所有13乘24个字母。 编辑:使用模糊的注释显示我需要在旋转后绘制,但这样做会裁剪网格并且不会填充回我喜欢的尺寸。 JPanel代码: import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GridLayout; import javax.swing.JLabel; import javax.swing.JPanel; public class Screen extends JPanel { private JLabel[][] labels = new JLabel[13][24]; private GridLayout layout; public Screen() { //setLocation(315,35); layout = new GridLayout(13, 24); layout.preferredLayoutSize(this); //setBounds(315, 65, 243, 350); setBounds(315, 65, 243, 350); setLayout(layout); […]

在Java Swing上旋转JLabel或ImageIcon

首先,这是我使用swing的第一周,如果我的问题太明显,那就很抱歉。 此外,我需要使用标准java库的解决方案,因为这是用于家庭作业,我不允许使用奇怪的库。 我正在使用JLabel和ImageIcon在JFrame上显示图像。 现在我想将屏幕上的图像旋转到任意角度。 我发现了一些关于Graphics2D的东西,但我找不到这样做的方法。 由于我发现的解决方案不起作用或我不理解它,我对旋转ImageIcon或JLabel的任何解决方案感兴趣。 由于我将图像定位在JLabel上的setBounds,旋转JLabel将是一个更好的解决方案我想(这样我也不会被迫保存ImageIcon对象)。 感谢您的关注,抱歉我的英语不好。 编辑…要在屏幕上显示图像,请执行下一步: JFrame frame = new JFrame(“Something”); frame.setLayout(new FlowLayout()); //for example JPanel panel = new JPanel(); panel.setLayout(null); ImageIcon playerSprite = new ImageIcon(“rute/to/file.png”); JLabel player = new JLabel(playerSprite); panel.add(player); player.setBounds(10,10,36,52); //for example frame.getContentPane().add(panel); frame.setVisible(true); 恢复,如何旋转此IconImage或JLabel。 如果您认为更好,我可以使用其他方法来显示图像。 如果解决方案是使用Graphics2D,就像我看到的那样,我将欣赏到达此类对象的解决方案,稍后将旋转后的图像返回到ImageIcon,因为当我尝试这个时…… ImageIcon imagePlayer = new ImageIcon(“img/stand.png”); Image image = imagePlayer.getImage(); Graphics2D g = […]

有什么方法可以旋转90度吗?

这是我目前的代码: package Calendar; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.text.SimpleDateFormat; import java.util.Date; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.Timer; public class Clock extends JLabel { private String pattern; private Timer timer; public Clock(String pattern){ this.pattern = pattern; createTimer(); timer.start(); } public Clock(){ pattern = “hh:mm:ss a”; createTimer(); timer.start(); } private void createTimer(){ timer = new […]

旋转Java Graphics2D矩形?

我到处搜索,我找不到答案。 如何在java中旋转Rectangle? 这是我的一些代码: package net.chrypthic.Space; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Space extends JPanel implements ActionListener{ Timer time; public Space() { setVisible(true); setFocusable(true); addMouseMotionListener(new ML()); addMouseListener(new ML()); addKeyListener(new AL()); time=new Timer(5, this); time.start(); } public void paint(Graphics g) { super.paint(g); Graphics2D g2d = (Graphics2D)g; g2d.setColor(Color.WHITE); Rectangle rect2 = new Rectangle(100, 100, 20, 20); […]

Java 2d方向鼠标点旋转

到目前为止,我有一个java应用程序,我绘制一个圆圈(播放器),然后在顶部(枪管)绘制一个绿色矩形。 我有它,所以当玩家移动时,枪管随之而来。 我想让它找到鼠标指向的位置,然后相应地旋转桶。 我的意思是看看这个video的一个例子我发现http://www.youtube.com/watch?v=8W7WSkQq5SU看看玩家图像在移动鼠标时的反应如何? 这是目前为止游戏的样子: 那我怎么像这样旋转呢? 顺便说一句我不喜欢使用affinetransform或Graphics2D旋转。 我希望有更好的方法。 谢谢