下面我有这个程序。我想让程序在同一点旋转形状,也旋转矩形不止一次。但是,程序只旋转矩形一次,并将旋转后的形状放在框架的另一个点上。我真的需要帮助。谢谢!!!!*
import javax.swing.JPanel;
import java.awt.*;
import java.util.Random;
import java.awt.event.*;
import javax.swing.*;
import java.awt.geom.AffineTransform;
public class BoxesPanel extends JPanel
{
private boolean drawRect = false, drawCircle = false, Repaint = false;
private JButton enter;
int count = 0;
//------------------------------------------------------------------
// Sets up the drawing panel
//------------------------------------------------------------------
public BoxesPanel(int num)
{
if(num == 1)
drawRect = true;
else if(num == 2)
drawCircle = true;
enter = new JButton("click");
enter.addActionListener(new ButtonListener());
add(enter);
setBackground(Color.gray);
setPreferredSize(new Dimension(400, 400));
}
private class ButtonListener implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
System.out.println("Rotate has been clicked: " + Repaint+ " " + count);
Repaint = true;
repaint();
}
}
public void paintComponent(Graphics page)
{
super.paintComponent(page);
Graphics2D g2d = (Graphics2D)page;
int x, y, width, height;
x = 100;
y = 100;
width = 100;
height = 100;
if(Repaint)
g2d.rotate(Math.toRadians(45), (x+width)/2, (y+height)/2);
g2d.setColor(Color.yellow);
AffineTransform old = g2d.getTransform();
if(drawRect)
g2d.fillRect(x,y,width,height);
else if(drawCircle)
g2d.fillOval(x,y,width,height);
g2d.setTransform(old);
System.out.println("Painted: " + Repaint+ " " + count);
Repaint = false;
}
}
import javax.swing.JFrame;
public class Boxes
{
//---------------------------------------------------------
// Creates the main frame of the program.
//---------------------------------------------------------
public static void main(String[] args)
{
JFrame frame = new JFrame ("Boxes");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
BoxesPanel panel = new BoxesPanel(1);
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);
}
}
我做了一些修改。现在似乎奏效了。
public class BoxesPanel extends JPanel
{
private boolean drawRect = false, drawCircle = false;
private int angle = 0;
private JButton enter;
int count = 0;
//------------------------------------------------------------------
// Sets up the drawing panel
//------------------------------------------------------------------
public BoxesPanel(int num)
{
if(num == 1)
drawRect = true;
else if(num == 2)
drawCircle = true;
enter = new JButton("click");
enter.addActionListener(new ButtonListener());
add(enter);
setBackground(Color.gray);
setPreferredSize(new Dimension(400, 400));
}
private class ButtonListener implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
System.out.println("Rotate has been clicked: " + count);
count++;
angle = (angle + 45)%360;
repaint();
}
}
public void paintComponent(Graphics page)
{
super.paintComponent(page);
Graphics2D g2d = (Graphics2D)page;
int x, y, width, height;
x = 100;
y = 100;
width = 100;
height = 100;
AffineTransform old = g2d.getTransform();
g2d.rotate(Math.toRadians(angle), x+width/2, y+height/2);
g2d.setColor(Color.yellow);
if(drawRect)
g2d.fillRect(x,y,width,height);
else if(drawCircle)
g2d.fillOval(x,y,width,height);
g2d.setTransform(old);
System.out.println("Painted: " + count);
}
}
我试图让x轴标签在柱状图上旋转45度,但没有成功。这是我下面的代码:
问题内容: 我已经在中绘制了一些图形,例如圆形,矩形等。 但是我想绘制一些旋转了特定程度的图形,例如旋转的椭圆。我该怎么办? 问题答案: 如果您使用plain ,则强制转换为first: 旋转整个: 要重置旋转(因此您只旋转一件事): 例:
我使用JavaSlick StateBaeedGame,并希望旋转我的矩形我的碰撞,我知道这是可以做的视觉目的使用图形或Graphics2D对象,但不修改矩形本身,最初列出的变量和图形方法中调用的矩形不旋转,使事情更清楚这里是一些代码: 当我加载GUI时,矩形rectTwo将显示为旋转,但它实际上并没有旋转,如果我测试碰撞,矩形仍然为0度。 那么,如何让矩形变量改变其角度呢?
我不知道如何在X轴上旋转文本。这是一个时间戳,所以随着样本数量的增加,它们越来越接近,直到它们重叠。我想将文本旋转90度,这样随着样本越来越近,它们就不会重叠。 下面是我所拥有的,它工作正常,除了我不知道如何旋转X轴文本。
我正在为我的游戏设计一个区块旋转组件,我遇到了一个我无法理解的小问题。基本上,我希望能够沿所有三个轴旋转网格组件。玩家一次只能旋转一个轴,旋转90度或-90度。我还希望玩家始终根据世界的X、Y和Z轴旋转网格,而不是块的相对轴,它将随着旋转而改变。我如何做到这一点? 无旋转的网格: 网格沿X轴逆时针旋转90度: 这里的问题是,如果我想沿着Y轴旋转块,相反,它将沿着Z轴旋转块,因为块现在被旋转。我如何
问题内容: 我对Three.js的旋转有很大的疑问,我想在自己的一款游戏中旋转3D立方体。 并且(x,y,z)可以是(1、0、0) 则多维数据集可以旋转,但是问题在于多维数据集绕其自身的轴旋转,因此,旋转后,它无法按预期旋转。 并且我尝试使用 matrixRotationWorld 作为 但它不起作用,我不以错误的方式使用它,还是有其他方法。 因此,如何让3D立方体绕世界轴旋转??? 问题答案: